无法跨域 axios get () X-CSRF-TOKEN 不允许 Access-Control-Allow-Headers 的 preflight response?

版本号:

  • Laravel Framework 5.6.22
  • axios: "^0.18",
    Access-Control-Allow-Headers in preflight response.
    file
    错误信息:Request header field X-CSRF-TOKEN is not allowed by Access-Control-Allow-Headers in preflight response.

    已经尝试过三种方法,但都没有成功

    1. 在index.php的头部加入

    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
    header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token, X-CSRF-TOKEN');

    2. 在相应的vue文件中读取中加入

    save () {
        axios.get('http://xxx.com',
            {
               headers: {
                   'X-Requested-With': 'XMLHttpRequest'
               },
               responseType: 'json',
               withCredentials: true,
           }
      ).then((response) => {
        .
        .
        }

    3. 使用 laravel-cors

    在config/cors.php指定

    'supportsCredentials' => false,
    'allowedOrigins' => ['*'],
    'allowedHeaders' => ['Content-Type', 'X-Requested-With'],
    'allowedMethods' => ['*'], // ex: ['GET', 'POST', 'PUT',  'DELETE']
    'exposedHeaders' => [],
    'maxAge' => 0,
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

需要在server端指定
X-CSRF-Token, Content-Type, X-Requested-With
参考资料
file

5年前 评论
讨论数量: 1

需要在server端指定
X-CSRF-Token, Content-Type, X-Requested-With
参考资料
file

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!