如何使用ReactJS解决CORS问题

时间:2019-08-24 07:56:43

标签: reactjs cors axios

我的后端在子域中运行。当我的网站通过http协议运行时,一切正常。但是,一旦我将网站移至https,我的POST请求便停止工作。以下是我在控制台上遇到的错误。

从原点“ https://backend.example.com/api/handle-enquiry/”到“ https://example.com”的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有HTTP正常状态。

我的GET请求工作正常。

注意:我使用firefox的开发人员工具检查了我的网络请求标头,其中显示了404的预检OPTIONS请求。

我尝试将以下代码放入我的.htaccess文件中

RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]

已解决:但是我仍然对解决方案感到困惑。我只是更改了配置标头的方式。之前我将它们放在laravel后端的index.php文件中。现在,我只是在.htaccess文件中配置它们。它有什么不同?我想念什么?

按照我更新的.htaccess配置

Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"

RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]

1 个答案:

答案 0 :(得分:-1)

需要将其设置为always

Header always set Access-Control-Allow-Origin "*"                   
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS"

摘自:https://serverfault.com/questions/231766/returning-200-ok-in-apache-on-http-options-requests