出现错误,例如对预检请求的响应未通过访问控制检查
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 错误“对预检请求的响应未通过访问控制检查”?