无法跨域 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,
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

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

5年前 评论
讨论数量: 1

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

5年前 评论

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