-1

我正在使用 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,这意味着其中应该有某种数据。

该怎么办?

4

1 回答 1

0

您不能使用 重定向AJAX,您只能向服务器发送和从服务器获取数据。

对于重定向,您必须使用“常规”HTTP 请求。

也可以用javascript完成window.location = myUrl

于 2012-06-12T18:08:44.923 回答