如何解决访问幼年路径时的CORS错误 [英] How to Solve CORS error in accessing laravel routes

查看:39
本文介绍了如何解决访问幼年路径时的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

注意!一些旧浏览器不支持‘*’逻辑

这篇关于如何解决访问幼年路径时的CORS错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆