Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔7号-无';访问控制允许原点';请求的资源上存在标头_Php_Laravel_Vue.js_Cors_Laravel 7 - Fatal编程技术网

Php 拉威尔7号-无';访问控制允许原点';请求的资源上存在标头

Php 拉威尔7号-无';访问控制允许原点';请求的资源上存在标头,php,laravel,vue.js,cors,laravel-7,Php,Laravel,Vue.js,Cors,Laravel 7,我知道这是一个非常常见的问题,还有很多其他的问题,但是,我不知道该怎么办了。我已经将我的Laravel API应用程序从5.8升级到7.10.3,现在我面临着以前从未出现过的CORS问题。Laravel 7已经提供了水果蛋糕/Laravel cors包,这是我在config/cors.php中的配置(默认配置): 'paths' => ['api/*'], 'allowed_methods' => ['*'], 'allowed_origins' => ['*'], 'allo

我知道这是一个非常常见的问题,还有很多其他的问题,但是,我不知道该怎么办了。我已经将我的Laravel API应用程序从
5.8
升级到
7.10.3
,现在我面临着以前从未出现过的
CORS
问题。Laravel 7已经提供了
水果蛋糕/Laravel cors
包,这是我在
config/cors.php
中的配置(默认配置):

'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,
基本上,每个
来源
标题
方法
都是允许的。我甚至尝试将这些行添加到
bootstrap/app.php
中,但没有效果:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: *');
我的前端是用
VueCli 3
构建的,我没有对其进行任何更改,只是升级了Laravel版本

邮递员上的请求工作正常。有人知道为什么会发生这个问题吗

完整错误消息:

Access to XMLHttpRequest at 'http://127.0.0.1:8000/api/operacao/cadastrar' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我在使用REACT时遇到了一个类似的问题,我的解决方案是添加标题并像这样格式化我的请求

axios.request({
      method: "POST",
      url: '<url>',
      data: data,
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      },
   })
   .then(function (response) {
     <what to do if works>
   })
   .catch((response) => {
    <what to do if it doesn't work>
   })
axios.request({
方法:“张贴”,
url:“”,
数据:数据,
标题:{
“接受”:“应用程序/json”,
“内容类型”:“应用程序/json”,
},
})
.然后(功能(响应){
})
.catch((响应)=>{

我发现了问题:我的请求在
$request->validate()
方法中失败,它位于一个
try/catch
块中,具有如下自定义异常处理程序:

try {
    $request->validate(array(...)); //validation was failing
    //code...
} catch (\Exception $e) {
    //This was the problem
    http_response_code(400);
    die($e->getMessage());
}
只要把
$request->validate()
放在
try
之前,它就工作了。只要记住
validate()
有自己的异常处理程序


我不知道这究竟是为什么会导致CORS错误,但我认为这是因为它在
访问控制允许源代码之前发送
标题

嗨,卢卡斯!谢谢你的帮助!我已经找到了问题,请看下面的答案:)很高兴你发现了这个问题!不知道你在说什么。我的vue+laravel 7应用程序也有同样的问题。我使用的是“离子图标”。加载home.vue页面时,我会出现此错误。字体图标不会加载。