我在应用程序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');
}
}
});
});