如何解决访问幼年路径时的CORS错误
我对laravel应用程序非常陌生。我想做的是开发一个使用laravel编写的API的Outlook Web插件。这里的问题是,它在通过Outlook邮件访问API时生成CORS错误。
错误:
Access to XMLHttpRequest at 'https://test.com/api/test' from origin 'https://localhost:44377' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
到目前为止我尝试的内容:
- 已安装并试用了spatia/laravel-cors模块
- 在bootstrap/app.php中添加了以下内容:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: *');
- 创建CORS类文件并添加为中间件
并最终以相同的错误结束。我该怎么办?
编辑:
为什么会自动将请求重定向到Https而不是http,哪里出了问题?请求URL应该是http://test.com/api/test,而不是https://test.com/api/test
提前谢谢!
解决方案
我也遇到了同样的问题,通过Middleware
解决了Define your custom middleware
//AppHttpMiddleware;
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', '*')
->header('Access-Control-Allow-Credentials', true)
->header('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type,X-Token-Auth,Authorization')
->header('Accept', 'application/json');
}
只需注册您的中间件、本地(特定路由)或全局。
How to register Middleware
注意!一些旧浏览器不支持‘*’逻辑
相关文章