jquery - jquery ajax重定向成功后或取消回调不会被调用

标签 jquery ajax redirect cross-domain single-sign-on

以下 ajax 调用对我来说效果很好:

$.ajax({
    url:"/" + destination,
    type:"POST",
    dataType:"json",
    data:collectedData,
    success: successFunction,
    error:errorFunction
});

但是,一旦遵循重定向,就不会调用成功或错误处理程序。我还注意到重定向中缺少 X-Request-With: XmlHttpRequestHeader。除了最后一个重定向之外,其他重定向都是跨域的,它将重定向到相同的源。例如:

request to     |   response
sameDomain     |   302 redirect to sso server (diffrent domain)
sso server     |   302 redirect to sso server
sso server     |   302 redirect to sameDomain
sameDomain     |   200 including valid json data

我使用的是 Firefox 16

有什么想法吗?

最佳答案

使用JSOP

$.ajax({
     url:"/" + destination,
     dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
     data:collectedData,
     success:function(json){
         // do stuff with json (in this case an array)
         alert("Success");
     },
     error:function(){
         alert("Error");
     },
});

关于jquery - jquery ajax重定向成功后或取消回调不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13604874/

相关文章:

javascript - 如何让javascript在页面加载后发送ajax数据而无需按钮?

javascript - 获取或发布请求返回快速响应?

regex - 使用 .htaccess 文件删除 .php 文件扩展名

javascript - 在 MVC 中设置选择下拉列表的值时出现问题

javascript - 在使用 jQuery offset() 之前等待 DOM 更新

javascript - react 事件AJAX调用竞争条件

java - Nutch 1.6 查找重定向的原始 url

javascript - 如何在追加后增加复选框 ID - JQuery

JQuery 与 .toggle .css

c# - 从旧 URL 重定向到最新已知 URL 的巧妙方法