我正在使用 JQuery 1.7.2,尝试执行一个跨站点 Ajax 请求,该请求应该通过 4 个重定向返回一个 html 页面。所有这些重定向不是我理想的世界,但它是规范的一部分。
现在,使用以下代码:
$.ajax({
type: "GET",
url: myUrl,
dataType: "script",
success: function(data) {
alert("success :"+ data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("revoke: "+textStatus + ' / ' + errorThrown+"/"+jqXHR.status);
},
complete: function(jqXHR, textStatus){
alert("complete : "+jqXHR.statusText + ": "+jqXHR.readyState);
}
});
我可以在 Firebug/Safari 开发人员工具中看到,所有重定向都有效(例如,返回带有 Location 标头的 302 状态)。然后奇怪的事情发生了:在返回 200 状态的最后一页,我的脚本结束,我尝试查看返回的数据。但输出只是“未定义”。我同意在尝试获取 html 页面时不应该期望脚本数据类型,但是当我尝试使用所有其他数据类型(如jquery ajax 页面中定义的)时,错误处理程序被调用并且状态代码为 0。一直以来,在 Safari DT 中,第一次重定向后的状态只是设置为“(已取消)”(一直以来,仅针对第二个重定向页面的请求只是挂在 Firebug 中-但我只是猜测它必须做他们不同的实现)。
当我收到 200 状态时,我可以在调试器中看到最后一页的大小约为 18kb,这意味着其中应该有某种数据。
该怎么办?