Laravel POST 请求 Cors No 'Access-Control-Allow-Origin'

Posted

技术标签:

【中文标题】Laravel POST 请求 Cors No \'Access-Control-Allow-Origin\'【英文标题】:Laravel POST request Cors No 'Access-Control-Allow-Origin'Laravel POST 请求 Cors No 'Access-Control-Allow-Origin' 【发布时间】:2019-08-02 13:00:47 【问题描述】:

当我尝试 POST 到给定的 url 时,当前收到一条错误消息。 GET 在同一个域上工作正常这是我的错误:

在“http://localhost:8000/api/users/login”访问 XMLHttpRequest 来自原点“http://localhost:8080”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。

我发现无数个问题都记录了同样的问题,所有这些问题都是修改我的 Cors 中间件的变体。

目前我的 CORS 中间件如下所示:

class Cors

    public function handle($request, Closure $next)
    
        if ($request->isMethod('OPTIONS')) 
            $response = Response::make();
         else 
            $response = $next($request);
        
        return $response
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
            ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, Application');
    

错误状态没有'Access-Control-Allow-Origin',我相信我的->header('Access-Control-Allow-Origin', '*') 应该处理它,因为根据我的理解,* 是一个通配符。我在这里错过了一个不同的问题吗? Stack 是 Laravel 后端和 VueJS 前端,如果相关的话,使用 Axios 处理 HTTP 请求。

编辑:这个问题是独一无二的,因为我已经在大多数答案中特别建议了标题:

->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')

我仍然收到错误。

【问题讨论】:

Adding Access-Control-Allow-Origin header response in Laravel 5.3 Passport的可能重复 @jigarhalani 这实际上是我找到的第一个答案之一。我最初尝试过,但没有成功,但无论哪种方式,我的标题中仍然有回答推荐的两件事。 【参考方案1】:

这里有两个包可以帮助你在 Laravel 中处理 CORS,你可以选择一个


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

【讨论】:

目前正在查看 barrvdh 包。如果这解决了问题并且没有人发布有关如何修复我当前实现的答案,我会接受这个答案。 github.com/barryvdh/laravel-cors 成功了。谢谢你的建议。

以上是关于Laravel POST 请求 Cors No 'Access-Control-Allow-Origin'的主要内容,如果未能解决你的问题,请参考以下文章

获取令牌 oauth2 - POST 客户端数据 - 错误请求

Laravel 7 CORS:被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”

Axios 中的 Cors OPTIONS 方法在 Laravel 和 Nginx 中失败

Laravel 接收非简单请求出现的 OPTIONS 请求问题

WebApi开启CORS支持跨域POST

CORS 策略已阻止访问 XMLHttpRequest - Laravel 5.8