【发布时间】:2014-08-19 06:38:19
【问题描述】:
由于我还不明白的原因,我可以在 firebug 控制台中看到我的(第一次)ajax 请求被发送到一个不完整的 url。 这将在 wordpress 网站中。通过我的域上的 proxy.php 使用 ajax 以避免跨域请求被阻止错误。 我的proxy.php的内容是:
<?php
header('Content-type: application/json');
$url=$_GET['url'];
$json=file_get_contents($url);
echo $json;
?>
在 ajax 函数发生的页面上,我正在使用这个进行测试:
<button id="srch">Search</button>
<script>
$("#srch").click(function(){
var url= 'https://commons.wikimedia.org/w/api.php?action=query&generator=search&gsrnamespace=6&gsrsearch=%22stones%22&gsrlimit=20&gsroffset=20&prop=imageinfo&iiprop=url&format=json&callback=?';
url = '../proxy.php?url='+url;
$.ajax({
url: url,
dataType: 'jsonp',
success: function () {
alert ("success");
console.log(data);
}
});
});
</script>
并且不包含我指定的 url 的其余部分。
有人能告诉我为什么我指定的 url 正在改变/切断吗?这个 url 地址中带有长序列的 Jquery 是什么?
【问题讨论】:
-
IMO 你应该对 url 参数进行 urlencode。
-
jsonp 调用附加了将数据传回“ajax”调用所需的回调参数。有关该部分的更多说明,请参阅json-p.org。
标签: jquery ajax json wordpress jsonp