我正在尝试进行以下AJAX调用并期待这样的流程:
AJAX致电https://localhost/AppA/login - >
AppA登录响应302重定向到OIDC服务器(跨域,紧随其后)https://dev.oidcserver.com/oauth2/v1/authorize?response_type=code&client_id=someid&redirect_uri=https://localhost/AppA/sso&scope=openid&state=somestate&nonce=somenonce&prompt=none - >
OIDC以302响应上述请求中的重定向URI :(未遵循,已取消,无任何错误) https://localhost/AppA/sso?code=authcode&state=somestate
我读到,对于预检请求,没有遵循302重定向,但第二个GET(OIDC服务器的那个)没有预检,我在Firefox中看不到任何OPTIONS请求。
如果我不使用AJAX并直接从浏览器网址栏点击登录网址,那么一切都按计划进行。
这是我的jQuery AJAX请求:
$jQ.ajax({
method: "GET",
async: false,
url: "/AppA/login",
crossDomain: true,
xhrFields: {
withCredentials: true
},
jsonp: false,
fail: function () {
console.log("Request failed");
window.location("/error");
}
})
OIDC服务器启用了CORS,浏览器中没有错误,重定向只是被取消。
任何帮助将不胜感激! 谢谢!!