以下javascript代码为我提供了“> success-<”,即空数据。在我的浏览器中粘贴网址会给我预期的内容。
$.get("http://company.tld/wiki/api.php?action=query&titles=Page%20Title&format=xml&prop=revisions&rvprop=content", function (data, status) {
alert(">" + status + "-" + data + "<");
});
这是一个MediaWiki维基。这是MediaWiki API规范:http://www.mediawiki.org/wiki/API:Query
为什么我没有收到任何数据?
答案 0 :(得分:0)
如果data
是对象,您将收到结果。请尝试在警报中使用typeof data
。
<强>已更新强>: 致jAndy:在jQuery.ajax的文档中,我们可以阅读以下内容(参见http://docs.jquery.com/Ajax_Events):
我刚尝试执行以下代码
try {
$.ajax({url:"http://en.wikipedia.org/w/api.php?action=query&titles=jQuery&format=xml&prop=revisions&rvprop=content",
success: function (data, status, x) {
alert ("ok");
},
error: function (data, status, x) {
alert ("not ok");
},
dataType:"xml"});
} catch (e) {
alert ("exception");
};
我尝试使用跨域调用。在IE中我可以看到“异常”警报。在Chrome和Firefox中:“不行”。如果出现错误,函数成功将 NOT 。
因此来自服务器的数据实际上是Tobbe网址的空字符串(“”)。
To Tobbe :你应该添加最后一个参数“xml”。
答案 1 :(得分:0)
您可能违反了那里的ajax跨域政策。 您尝试访问自己的域名吗?更好的说,你的脚本中的那个?
根据我的经验,如果您尝试从外部域访问数据,则无论如何都会触发成功处理程序。但正如你所描述的那样,根本没有数据。