【问题标题】:Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource not working跨域请求被阻止:同源策略不允许读取远程资源不起作用
【发布时间】:2019-11-22 11:45:34
【问题描述】:

我是 Laravel 的新手,在 tackoverflow 上经历了几种解决方案,但无济于事。它仍然显示相同的跨域请求被阻止的错误。

$(".cmd_submit").click(function(){
$.ajax({
    //crossOrigin: true,
    //header:{'Access-Control-Allow-Origin': '*'},
    type: 'POST',
    url:  'http://localhost/members/register',
    data: $('#form_reg').serialize(),
    success: function(data){
       alert(data);
    },
    error: function(data){
  alert(data);
    }

我也加入了这个:

<?php header("Access-Control-Allow-Origin: *"); ?>

在我的 app.blade.php 上,但还是不行。

【问题讨论】:

  • 检查你的 php 代码,有时会因为 php 代码中的语法错误而发生
  • 看看github.com/barryvdh/laravel-cors 在 Laravel 中处理 CORS。如果您仍然遇到问题,请包含请求和响应标头。
  • 连php文件都不去,因为url有问题,一直返回错误函数而不是成功函数

标签: php ajax laravel


【解决方案1】:

你需要设置config/cors.php内容。

我的看起来像这样:

return [

    /*
    |--------------------------------------------------------------------------
    | Laravel CORS
    |--------------------------------------------------------------------------
    |
    | allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
    | to accept any value.
    |
    */

    'supportsCredentials' => false,
    'allowedOrigins' => ['*'],
    'allowedHeaders' => ['*'],
    'allowedMethods' => ['*'],
    'exposedHeaders' => [],
    'maxAge' => 0,

];

更新:

对不起,我在这里不是很清楚。您需要先安装barryvdh/laravel-cors 库,它将允许OPTIONS 请求获得带有所需标头的200 响应。 Laravel 不附带此包,因此 Chrome(或任何其他现代浏览器)会看到缺少跨域标头并阻止请求。

【讨论】:

  • 我现在刚刚添加了文件 cors.php,我运行了我的代码,但仍然无法正常工作,我还需要做些什么才能让它工作吗?
  • 是的,请阅读 jel​​han 的上述评论。安装 barryvdh/laravel-cors 库并发布供应商文件。只需按照 Github 上的文档进行操作即可。
  • @chinnyenechukwu 抱歉,我的回复不是很清楚。我已经更新了。
猜你喜欢
  • 2021-04-04
  • 2014-10-17
  • 2015-07-22
  • 2018-04-20
  • 2014-07-20
  • 1970-01-01
相关资源
最近更新 更多