出现错误,例如对预检请求的响应未通过访问控制检查

Posted

技术标签:

【中文标题】出现错误,例如对预检请求的响应未通过访问控制检查【英文标题】:Getting error like Response to preflight request doesn't pass access control check 【发布时间】:2019-01-08 16:57:27 【问题描述】:

我正在做 Laravel 项目。在这个我有文件夹名称作为本地主机中的 onlinebookingmanager 。我运行类似npm run dev 的命令。在此之后,我运行 url http://localhost:8080/admin/login。现在我收到类似

的错误

对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头的值“http://localhost”不等于提供的来源。因此,不允许访问 Origin 'http://localhost:8080'。

我已经安装了插件 CORS,但它似乎不起作用。

【问题讨论】:

要么在默认 HTTP(80) 端口上运行你的服务器,要么为 localhost:8080 设置“插件 CORS”(不管它是什么意思);当前使用的域+端口与预检的响应不匹配(localhost:80 != localhost:8080) 【参考方案1】:

这个问题是由于缺少标题属性Access-Control-Allow-Origin 而应该是*

解决此问题的最佳方法是将以下库集成到您的 laravel 项目中

https://github.com/barryvdh/laravel-cors

这个库在中间件中提供了 CORS 解决方案,因此在每个请求中您都会得到完美的标头。

【讨论】:

在我添加了这个中间件之后,我也得到了同样的错误【参考方案2】:

您是否在 app.js 中包含以下代码

var cors = require('cors')
var app = express();
app.use(cors());
app.use(function(req, res, next) 
 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, 
 Accept");
 next();
);

希望对你有帮助。

【讨论】:

以上是关于出现错误,例如对预检请求的响应未通过访问控制检查的主要内容,如果未能解决你的问题,请参考以下文章

为啥 CORS 错误“对预检请求的响应未通过访问控制检查”?

对预检请求的响应未通过访问控制检查

对预检请求的响应未通过访问控制检查

对预检请求的响应未通过访问控制检查

Cloud Functions Cors 错误“对预检请求的响应未通过访问控制检查”

cors 策略错误:对预检请求的响应未通过访问控制检查:没有'Access-Control-Allow-Origin