当前位置: 首页 > 面试题库 >

带有jQuery的仪表板跨域AJAX

孟华晖
2023-03-14
问题内容

大家好,我正在为Apple Dashboard开发小部件,尝试使用jquery的ajax函数从服务器获取数据时遇到了问题。这是我的JavaScript代码:

$.getJSON("http://example.com/getData.php?act=data",function(json) { 
    $("#devMessage").html(json.message)
    if(json.version != version) {
        $("#latestVersion").css("color","red")
    }
    $("#latestVersion").html(json.version)
})

服务器使用以下json响应:

{"message":"Hello World","version":"1.0"}

但是由于某种原因,当我运行它时,小部件上的字段不会更改。通过调试,我了解到该小部件甚至没有向服务器发出请求,因此让我认为Apple拥有某种外部URL块。我知道这不是真的,因为许多小部件都会打电话回家检查更新。

有人对可能出什么问题有任何想法吗?

编辑:此外,此代码在Safari中也可以正常工作。

根据Luca的要求,这是目前正在运行的PHP和Javascript代码:

PHP:

echo $_GET["callback"].'({"message":"Hello World","version":"1.0"});';

Javascript:

function showBack(event)
{
var front = document.getElementById("front");
var back = document.getElementById("back");

if (window.widget) {
    widget.prepareForTransition("ToBack");
}

front.style.display = "none";
back.style.display = "block";
stopTime();
if (window.widget) {
    setTimeout('widget.performTransition();', 0);
}
$.getJSON('http://nakedsteve.com/data/the-button.php?callback=?',function(json) { 
    $("#devMessage").html(json.message)
    if(json.version != version) {
        $("#latestVersion").css("color","red")
    }
    $("#latestVersion").html(json.version)
})
}

问题答案:

在Dashcode中,单击“窗口 小部件属性”, 然后单击“ 允许网络访问”,
确保已选中该选项。我已经建立了一些东西,只是拒绝工作,这就是解决方案



 类似资料:
  • 我正在使用prime faces仪表盘。我有2个面板要显示。一个带有“行动”,另一个带有“我的任务”。我面临的问题是两个面板没有按照窗口大小(面板宽度)拉伸。如果我给出宽度:100%也不起作用。但如果我以像素为单位给出宽度和高度,它的工作。有没有什么办法我可以给出宽度和高度的百分比。

  • 问题内容: 这是两个页面,test.php和testserver.php。 test.php testserver.php 现在我的问题是:当这两个文件都在同一服务器上(本地主机或Web服务器)时,它可以工作并被调用;如果它在不同的服务器上,则意味着Web服务器上的testserver.php和localhost上的test.php,它不起作用,并且正在执行。即使ajax内的URL更改为http:

  • 问题内容: 这是两个页面,test.php和testserver.php。 test.php testserver.php 现在我的问题是:当这两个文件都在同一服务器上(本地主机或Web服务器)时,它可以工作并被调用;如果它在不同的服务器上,则意味着Web服务器上的testserver.php和localhost上的test.php,它不起作用,并且正在执行。即使ajax内的URL更改为http:

  • 问题内容: 对于一个项目,我需要获取其他不同域的网页的源代码。我尝试了以下代码: 我仍然没有得到任何结果,只是一个空白的警告框。 问题答案: 默认情况下,所有浏览器都限制跨域请求,您可以使用YQL作为代理来解决此问题。在此处查看指南:http://ajaxian.com/archives/using-yql-as-a- proxy-for-cross-domain-ajax

  • 问题内容: 我正在尝试访问另一个域中的Web服务,但它不返回任何内容。后来我发现这是一个跨域访问的问题。 我在网上搜索了很多文章,但像我这样的新手都看不懂。:( 有人可以帮助我如何访问Web服务吗? 以下是我的代码。 问题答案: 浏览器不允许跨域AJAX调用。仅允许跨域JSONP请求。 要使用JSONP请求,您必须将属性更改为。但是,这意味着您不能请求XML,而只能请求JSONP。 关于JSONP

  • 问题内容: 我想使用post方法以xml作为响应文本发送ajax请求,是否可能,如果可能,请告知我可能的方法。 对于前 http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=INR&ToCurrency=AUD 我需要使用ajax对此URL进行响应。 问题答案: 您可以使用YQL,