我的 php 编码页面位于一台返回 json 结果的服务器上。
php 文件名为:getInfoData.php,返回如下。
echo json_encode($v);
不,我可以使用 $.getJSON(??) 读取 json 并在同一服务器上运行它,但我需要 php 页面位于与调用它的 js 页面不同的服务器上。
但当我这样做时,我遇到了跨域问题。
所以我更改了代码以使用以下内容(jsonp):
$.ajax({
url: 'FILE_LOCATION_ON_ANOTHER_SERVER',
type: 'GET',
crossDomain: true,
dataType: 'jsonp',
success: function() { console.log("Success"); },
error: function() {console.log('Failed!'); }
});
但我没有看到任何东西,我只是通过控制台得到以下信息:
http://www.THEURL.com/FOLDER/FILENAME.php?callback=jQuery171013088115444406867_1332256223342&_=1332256223343
并显示一条消息失败!
我做错了什么以及我该如何解决这个问题?
Thanks
JSONP 实际上并不是 JSON。这有点“黑客”。 JSONP 实际上是一个 JavaScript 文件,可以下载并运行。
在您的 PHP 页面中,您应该传递一个callback
范围。您需要将 JSON“包装”在其中。它应该看起来像这样:
func({json: data})
所以,你的 PHP 应该是这样的:
echo $_GET['callback'] . '(' . json_encode($v) . ')';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)