使用 axios 发出请求时出现 MethodNotAllowedHttpException(流明)

Posted

技术标签:

【中文标题】使用 axios 发出请求时出现 MethodNotAllowedHttpException(流明)【英文标题】:MethodNotAllowedHttpException (lumen) while making request with axios 【发布时间】:2018-04-11 11:47:53 【问题描述】:

创建了一个在 lumen 中插入 todo 的路由,它使用邮递员完美地工作,但是在我使用 axios 发送的反应应用程序请求中,它得到错误

this.apiUrl = 'http://lumenback.dev/createTodo';

axios.post(this.apiUrl, 
  todo: this.state.todo,
  todo_date: this.props.curDate
)
.then(function (response) 
  console.log(response);
).catch(function (error) 
  console.log(error);
);

提前谢谢...

【问题讨论】:

【参考方案1】:

我猜你的应用程序不接受跨域请求。

这是Lumen API CORS Ajax 405 Method Not Allowed 的答案,我写信是为了设置 Cors 并使其与 React 和 Lumen 5.5 一起使用。

看看这是否有帮助。

我无法发表评论,所以在这里写下这个解决方案。

【讨论】:

在添加以下代码后修复了我的问题 Route::options( '/any:.*', [ 'middleware' => ['CorsMiddleware'], function () return response(['状态' => '成功']); ] );【参考方案2】:

这是在黑暗中的尝试,但是您是否尝试过先在 axios 上设置标头?

在你的 post 命令之前插入: axios.defaults.headers.post["Content-Type"] = "application/json";

【讨论】:

不走运,仍然收到错误对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'localhost:3000' 不允许访问。响应的 HTTP 状态代码为 405 那么这个错误很可能是 Laravel 抛出的,因为路由配置的原因。你检查过这个帖子:***.com/questions/31677198/… 吗?具体来说,您是否为 GET 而不是 POST 配置了路由? 我认为这与 cors 有关 但我也添加了核心中间件,这就是为什么我的 get 请求有效,但不在 post 请求中 如果你尝试使用 CURL 直接测试你的端点会发生什么: curl -X POST lumenback.dev/createTodo -d 'todo: dummyData, todo_date: dummyData' 你会收到错误吗?

以上是关于使用 axios 发出请求时出现 MethodNotAllowedHttpException(流明)的主要内容,如果未能解决你的问题,请参考以下文章

发出 Axios GET 请求时出现无限循环 - 循环不会关闭

发出帖子请求时出现Vuejs axios错误

向 Spotify API 发出 PUT 请求时出现 401 错误

使用 Axios 上传文件时出现 JavaScript CORS 错误

在 Nest JS 中发出 http 请求时出现 httpService 未定义错误

在 React 应用程序中使用 axios.post 到 Django 端点时出现 403 错误代码