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

时间:2012-11-28 12:16:26

标签: 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

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用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");
     },
});

答案 1 :(得分:0)

尝试像这样更改您的代码

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