【问题标题】:MethodNotAllowedHttpException (lumen) while making request with axios使用 axios 发出请求时出现 MethodNotAllowedHttpException(流明)
【发布时间】: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);
});

提前谢谢...

【问题讨论】:

    标签: php reactjs axios lumen lumen-5.4


    【解决方案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 抛出的,因为路由配置的原因。你检查过这个帖子:stackoverflow.com/questions/31677198/… 吗?具体来说,您是否为 GET 而不是 POST 配置了路由?
    • 我认为这与 cors 有关
    • 但我也添加了核心中间件,这就是为什么我的 get 请求有效,但不在 post 请求中
    • 如果你尝试使用 CURL 直接测试你的端点会发生什么: curl -X POST lumenback.dev/createTodo -d '{todo: dummyData, todo_date: dummyData}' 你会收到错误吗?
    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 2022-10-08
    • 2020-10-26
    • 2018-05-28
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多