阿贾克斯封堵CORS

Posted

技术标签:

【中文标题】阿贾克斯封堵CORS【英文标题】:Ajax post block CORS 【发布时间】:2020-04-30 01:08:29 【问题描述】:

我将尝试通过在 laravel 项目的控制器中创建的 api 将批量数据发送到另一个域

我的功能

 public function test_prod_insert()
    
       $usrl= url('/public/wheel_images/rohana_imgs');
        $users = DB::table('products')->select('id','title','sku','image1')->skip(0)->take(2)->get();
        echo"<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
        <script type='text/javascript' src='https://trk.mtrl.me/tracking.js?token=**********'></script>";

        foreach($users as $data)
    echo"<script>
        var model = 
  'time': 1518004715732,
  'token': '***************',
  'platform': 'laravel',
  'pluginVersion': '1.1.0',
  'params': 
    'categories': [
      '2'
    ],
    'id': '<?= $data->id ?>',
    'sku': '<?= $data->sku ?>',
    'imageUrl': '<?= $usrl ?>/<?= $data->image1 ?>',
    'name': '<?= $data->title ?>',
    'price': '',
    'url': '',
    'options': [

    ]
  
;

$.ajax(
    type: 'POST',
    data: JSON.stringify(model),
    url: 'https://trk.mtrl.me/product',
    contentType: 'application/json'
).done(function(res)        
    console.log('res', res);
    // Do something with the result :)
);
</script>";

    

在控制台中显示“mysite 已被 CORS 策略阻止:在预检响应中 Access-Control-Allow-Headers 不允许请求标头字段内容类型”我尝试了一些类似的答案,但问题没有解决,请帮助我解决这个问题...

【问题讨论】:

【参考方案1】:

在 CORS 中您无能为力:但这一切都与您正在调用的主机站点相关,基本上它是一个浏览器功能,因此如果在标头中看不到它,它将阻止对主机站点的请求

"Access-Control-Allow-Origin: *"

因此,在您调用的主机站点中,只需确保它接受来自您的域的连接,然后您就可以调用 API。

编辑 再写一遍没有意义,但是你可以这样实现它

Add CORS as Middleware in Laravel

【讨论】:

"Access-Control-Allow-Origin: *" 我如何在脚本中应用它 因为邮递员在后面提出 curl 请求。但是 XHR 请求是基于浏览器的。你的后端编程语言是什么 使用了laravel 我正在编辑我的答案,你可以阅读,你如何控制这个 是的,我遵循相同的步骤,但显示跨域请求被阻止:同源策略不允许读取trk.mtrl.me/product 的远程资源。 (原因:CORS 预检通道的 CORS 标头“Access-Control-Allow-Headers”中缺少令牌“content-type”)。

以上是关于阿贾克斯封堵CORS的主要内容,如果未能解决你的问题,请参考以下文章

如何用RouterOS封堵HTTP、SOCKS代理

解决云UAP控制器被电信封堵8080端口问题

防火墙端口封堵失败总结

中信银行宣布,“封堵”比特币!一经发现,注销账户

突发!中信银行宣布,"封堵"比特币!一经发现,注销账户

银行继续“封堵”比特币,中信称禁止使用账户用于比特币交易