从http重定向到https时,对预检的响应无效(重定向)

时间:2018-08-02 08:59:49

标签: javascript google-chrome redirect cors http-redirect

我们有一个AJAX GET调用,它会在单击按钮时触发,我们正在使用Google Chrome版本67.0.3396.99

function redirect() {
      $.ajax({
        type: 'GET',
        url: 'login/salesforce/login',
        contentType: 'application/octet-stream; charset=utf-8',
        headers: {
          'Content-Type':'application/x-www-form-urlencoded'
        },

        success: function (result) {
          alert(result);  
        },
        error: function (xhr) {
         handleError();
        },
        processData: false
      });
    }

在服务器端,我们有一个Response.temporaryRedirect重定向到 https

的salesforce uri
@GET
  @Path("/login")
  def redirect(): Response = {

    val URL =
      s"$SERVER$OAUTH2_AUTHORIZE_PATH?response_type=code&" +
        s"client_id=$CLIENT_ID&redirect_uri=$REDIRECT_URI$OAUTH2_REDIRECT_PATH"


   Response.temporaryRedirect(new java.net.URI(URL)).build()

  }

现在执行ajax调用时,调用已成功,并且我们使用302获得重定向网址,但浏览器未重定向,并且在控制台上我可以看到

对飞行前的响应无效(重定向)

**我们最初的研究指向这一点是因为CORS从http(localhost)重定向到salesforce的https网址**

我们尝试将'Content-Type':'application / x-www-form-urlencoded'添加到请求的标头中,但是如果您能将我们的正确方向指向,仍然无法使浏览器重定向克服这个问题将有很大帮助

注意还验证了当我们将复制的内容粘贴到直接能够成功导航到Salesforce网站的浏览器中时,返回的重定向URL是有效的

0 个答案:

没有答案