重定向URI在多个ajax调用中丢失

时间:2018-07-12 08:47:21

标签: jquery ajax

我在应用程序amyapp.mydomain.com/func1中进行了多个Ajax调用

1)调用了另一个站点以获取一些数据。它将重定向为输入令牌:

$.ajax(
    .
    url: siteA.domainA.com/action1,
    .
)

给出302响应,以从siteB.domainA.com/getToken获取令牌。

2)现在,页面的其他部分加载完毕,并且对我自己的应用程序进行了另一个ajax调用,如下所示:

$.ajax(
    .
    url: amyapp.mydomain.com/func2,
    .
)

3)现在,当第一个ajax调用处理重定向时,其请求参数设置为

redirect_uri: amyapp.mydomain.com/func2

代替

redirect_uri: siteA.domainA.com/action1.

这会导致siteB.domainA.com抛出error 400

但是,如果在(1)完成之前不进行第二次ajax调用,则不会有错误。我该如何纠正?我也尝试使用最新的jQuery版本。

编辑(粘贴的代码):

func1.html内部:

function setHeader(xhr) {
    xhr.setRequestHeader("Accept", "application/json");
}
var ajax_request = {
    type: 'GET',
    dataType: 'json',
    url: url, // siteA.domainA.com/action1
    data: my_args,
    crossDomain: true,
    beforeSend: setHeader
};
var request = $.ajax(ajax_request);
var handler = function(data) {
    $(document).ready(function() {
        // Actions based on data
    });
};
request.done(function(data) {
    handler(data);
});
request.fail(function(data) {
    handler(data);
});

common.html内的func1.html内:

$(document).ready(function() {
    $.ajax({
       type: 'GET',
       url: https://amyapp.mydomain.com/func2,
       success: function (data) {
            if(data === "ABC"){
                $('#ABC').html('Dummy');
            }
        }
    });
});

0 个答案:

没有答案