使用 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 请求时出现无限循环 - 循环不会关闭
向 Spotify API 发出 PUT 请求时出现 401 错误
使用 Axios 上传文件时出现 JavaScript CORS 错误