首页 > 解决方案 > Swagger UI requestInterceptor 抛出“Cannot set property 'X-CSRF-TOKEN' of undefined”错误

问题描述

我正在使用 Laravel 5.7 和 Swagger 创建 API 文档。

作曲家要求:

"require": {
    "php": ">=5.6.4",
    "darkaonline/l5-swagger": "^5.7.3",
    "filp/whoops": "~2.0",
    "laravel/framework": "5.7.*",
    "laravel/passport": "~4.0",
    "laravel/tinker": "~1.0",
    "mll-lab/laravel-graphql-playground": "^2.1",
    "nuwave/lighthouse": "^4.15",
    "paragonie/random_compat": "~2.0",
    "zircote/swagger-php": "3.*"
},

一切正常,但是当我尝试在 Swagger UI 中执行请求时,出现错误:

actions.js:453
TypeError: Cannot set property 'X-CSRF-TOKEN' of undefined

这是引发错误的代码:

 requestInterceptor: function() {
      this.headers['X-CSRF-TOKEN'] = 'hM4lUy0ednXXWEFwYc1iRprnSuBuPwQH6Z4pi6v8';
      return this;
    },

为什么会发生错误?

标签: laravellaravel-5swaggerswagger-ui

解决方案


您的requestInterceptor函数缺少参数。

requestInterceptor函数必须有一个参数,例如req. 此参数提供对请求数据的访问。该函数必须返回修改后的请求。

requestInterceptor: function(req) {
  req.headers['X-CSRF-TOKEN'] = 'hM4lUy0ednXXWEFwYc1iRprnSuBuPwQH6Z4pi6v8';
  return req;
},

推荐阅读