创建了javascript小部件。在我自己的域上进行测试,并且工作正常。但是,当在第三方网站上发布时,它看起来似乎没有连接到数据库并获取数据。
以下是我获取数据的js文件的一部分:
/******* Load HTML *******/
var jsonp_url = "http://www.example.com/widget/data.php";
$.getJSON(jsonp_url, function(data) {
当我在example.com上测试时,一切都很好。我将data.php的权限设置为777,但仍然无效。请帮忙!
答案 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/