当前位置: 首页 > 知识库问答 >
问题:

Laravel:预检响应中的访问控制允许方法不允许方法 PUT

尉迟安民
2023-03-14

我有一个由Laravel后端提供服务的Vue.jsSPA。两者都是单独的项目。我正在使用水果蛋糕来处理CORS,但我一直收到这个错误:

CORS策略已阻止从源“http://localhost:8081”访问“http://domain . test/API/v1/attributes/3”处的XMLHttpRequest:预检响应中的Access-Control-Allow-Methods不允许使用方法PUT。GET、POST方法工作正常。

我已经尝试了类似问题的解决方案,但似乎都没有奏效。我什至尝试过创建自己的中间件,就像这里建议的那样。这是我的配置/cors.php我正在与水果蛋糕一起使用。

'paths' => [],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,

我假设“allowed_methods”=

共有2个答案

陶锋
2023-03-14

我正在使用这个代码

public function handle($request, Closure $next)
{
    $response = $next($request);
    $response->header('Access-Control-Allow-Origin', '*');
    $response->header('Access-Control-Allow-Credentials', 'true');
    $response->header('Access-Control-Allow-Methods', 'GET,HEAD,OPTIONS,POST,PUT');
    $response->header('Access-Control-Allow-Headers', 'XMLHttpRequest, Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Authorization, Access-Control-Request-Method, Access-Control-Request-Headers');
    
    return $response;
}
柳星晖
2023-03-14

您必须至少配置一条路径,以便中间件知道要挂钩到哪些路由:

'paths' => ['api/*']
 类似资料:
  • 问题内容: 我看到以下错误: 使用此代码: 是什么原因引起的,如何解决? 问题答案: 在当前域之外发出ajax请求时,Javascript是受限制的。 例1:您的域名为example.com,并且您想向test.com提出请求=>您不能。 例2:您的域名是example.com,并且您想向inner.example.com发送请求,但是您不能。 例3:您的域名为example.com:80,并且您

  • 我正在创建一个单页应用程序使用sails.js和reactjs,并使用JWT作为受保护请求的身份验证。在登录过程中,登录请求按预期工作,并能够成功登录。之后,当我试图用无记名请求其他请求时,浏览器显示以下错误消息。 从源访问位于“http://localhost:1337/monitoring URL”的XMLHttpRequest 以下是我在帆config/security.js中的cors设置

  • 我正在从主机(http://abc.com.au)向主机http://localhost:8081上运行的Spring Cloud API网关发送ajax请求。 jquery AJAX请求代码。 SimplifiedAdoptionBulkUpload.jsp spring cloud gateway cors配置。 我在chrome控制台中遇到以下错误。 SimplifiedAdoptionBu

  • 我在后端使用spring boot服务,在前端使用angular 6。 在spring boot中,我使用启用了cors。 并且我正在为每个服务使用拦截器。 在前端呼叫服务中: 如果使用拦截器,我会得到以下异常。如果不使用隔膜,我不会得到cors错误。 加载失败http://localhost:7070/example/myservice:飞行前响应中的访问控制允许标头不允许请求标头字段访问控制允

  • 此url位于AWS API网关中,方法为get,stage部署良好。我在aws文档之后启用了CORS。 -资源->操作->启用CORS->默认设置->启用CORS并替换CORS头。在CORS结果中没有错误日志。 我不是profesional web开发人员,我的浏览器是Safari。 以下是我查询“http://my.com”的代码 控制台打印错误:XMLHttpRequest不能加载“http:

  • 我在AngularJS中创建了一个应用程序,并尝试调用Laravel API: MyApp(AngularJS):http://localhost:8080/ API(Laravel样板文件):http://localhost:8000/ api_routes.php: