axios 403 在 OPTIONS 请求中被禁止

Posted

技术标签:

【中文标题】axios 403 在 OPTIONS 请求中被禁止【英文标题】:axios 403 forbidden on OPTIONS request 【发布时间】:2017-11-28 11:09:00 【问题描述】:

我正在开发一个使用 React+Redux 并使用 axios 进行 api 调用的应用程序。

这是一个失败的示例调用:

axios.post(`$API_ROOT$FIND_USER$currentUserID`, 
        headers: 
                'Authorization': token
        ,
      )
    .then((response) => 
        console.log("Sucess")
    )

我在network 中看到的请求网址类似于:

http://domainName:8080/users/findUser/1234

API 调用在 OPTIONS 本身失败,我从后端收到的错误是

Response for preflight has invalid HTTP status code 403

它永远不会到达POST

token 是从 localstorage 检索的,类似于 Bearer eyJhbGci...

后端开发人员正在使用 Java 和 Spring。

我调用 API 的方式是否有问题,或者这个问题应该在后端解决?

通过 Postman 测试时,此 API 工作正常。

【问题讨论】:

这可能是 CORS 问题,当您通过 Postman 发出请求时,您是否在响应中看到任何 Access-Control-Allow-Origin 标头? 【参考方案1】:

原来在后台已经有解决这个问题的办法了:

How to configure CORS in a Spring Boot + Spring Security application?

它就像一个魅力!

【讨论】:

【参考方案2】:

'headers' 在 axios 的 POST 请求中总是作为第三个参数出现。如果有任何参数,请给出第二个参数或将第二个参数作为空字符串传递。

【讨论】:

以上是关于axios 403 在 OPTIONS 请求中被禁止的主要内容,如果未能解决你的问题,请参考以下文章

跨源请求在 tomcat 8 中被阻止,HTTP 状态代码为 403

django rest + axios put请求错误403

请求失败,axios.get 中的状态码为 403(禁止)

执行 POST 请求时的 Spring Boot 端点 403 OPTIONS

AWS 中的 403 OPTIONS Cors 错误,预检请求

vue 跨域请求 怎么带上cookies