【发布时间】: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')
我仍然收到错误。
【问题讨论】:
-
@jigarhalani 这实际上是我找到的第一个答案之一。我最初尝试过,但没有成功,但无论哪种方式,我的标题中仍然有回答推荐的两件事。
标签: php laravel vue.js cors axios