浏览器不遵循启用CORS的端点的重定向响应(不是预先发出的请求)

时间:2017-07-10 21:54:12

标签: javascript ajax redirect cors cross-domain

我正在尝试进行以下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并直接从浏览器网址栏点击登录网址,那么一切都按计划进行。

enter image description here

这是我的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,浏览器中没有错误,重定向只是被取消。

任何帮助将不胜感激! 谢谢!!

0 个答案:

没有答案