跨域请求被阻止:同源策略禁止读取远程资源不起作用

时间:2019-07-12 17:22:19

标签: php ajax laravel

我是Laravel的新手,已经完成了关于粘性溢出的几种解决方案,但无济于事。仍然显示跨域请求被阻止的相同错误。

$(".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上,但仍然无法正常工作。

1 个答案:

答案 0 :(得分:0)

您需要设置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(或任何其他现代浏览器)会发现缺少跨域标头,并将阻止该请求。