Javascript小部件在我自己的域上运行正常,但不适用于任何人?

时间:2011-09-29 08:41:52

标签: javascript json widget

创建了javascript小部件。在我自己的域上进行测试,并且工作正常。但是,当在第三方网站上发布时,它看起来似乎没有连接到数据库并获取数据。

以下是我获取数据的js文件的一部分:

/******* Load HTML *******/
var jsonp_url = "http://www.example.com/widget/data.php";
$.getJSON(jsonp_url, function(data) {

当我在example.com上测试时,一切都很好。我将data.php的权限设置为777,但仍然无效。请帮忙!

3 个答案:

答案 0 :(得分:2)

你不能跨不同的域进行ajax调用: 假设您的域名为“example.com”,第三方网站为“thirdparty.com”。您在thirdparty.com上安装小部件。 thirdparty.com上的小部件代码将尝试向'example.com'发出ajax请求。这是浏览器禁止的。

您总是可以用直接< a来替换ajax调用。脚本>标签。这没有任何限制。

希望有所帮助

答案 1 :(得分:1)

您有一个名为jsonp_url的变量,但您使用的网址不包含the documentation says triggers jsonp mode的字符串callback=?

您需要在URL中包含该内容,并确保您的服务器端脚本正在输出JSONP(使用$_GET['callback'](具有适当的清理)以确定包装JSON的函数名称。)

答案 2 :(得分:0)

他们需要启用跨源资源共享。 http://enable-cors.org/