我知道现代浏览器不允许对外国URL的AJAX请求,解决方法是JSON编码,我这样做:
function findZipCodesInRadius(userZip, radiusInMiles) {
$.getJSON("http://mydomain.com/php/zipCodesInRadius.php?callback=?", {
TheUserZip: userZip,
TheRadiusInMiles: radiusInMiles
},
function (data) {
alert("Data Loaded: " + data);
});
}
在PHP的一面,我有它“回应”结果回来像这样:
$JSONData = array("callback"=>"true");
echo json_encode($JSONData);
浏览谷歌后,上面的代码就是我发现的,它仍然无法正常工作。 如何正确回显回调?也许我正在做错误的ajax请求?我通常以不同的方式做,但因为我试图访问我的另一个网站上的文件,我一直在寻找发送请求的正确方法,这就是我提出的。不知道我做错了什么。
答案 0 :(得分:2)
您需要实现一个回调函数才能使其正常工作。您需要使用$_GET['callback']
中定义的回调函数包装json_encode。
例如,echo $_GET['callback']."(".json_encode($JSONData).")";
。
答案 1 :(得分:1)
您必须为jsonp请求添加回调
$JSONData = array("callback"=>"true");
$callback = $_GET['callback'];
echo $callback,'(',json_encode($JSONData),')';
答案 2 :(得分:1)