【问题标题】:Vue js , http 405 error LaravelVue js,http 405 错误 Laravel
【发布时间】:2017-06-04 15:09:45
【问题描述】:

我的 api 中的 http 调用有问题。

问题是我有这个 http POST 调用:

axios.post("/api/crear/dimension/", data).then((response) => {
                        this.success();
                        console.log(response.data);
                    }).catch((response) => {
                        this.error(response)//;
                    })

使用 axios,因为 vue 资源已被弃用。

问题是,当我想触发呼叫时,会发生这种情况:

GET http://localhost/api/crear/dimension 405 (Method Not Allowed)

请注意 chrome 如何将此作为 GET 调用而不是 POST 调用。 IDK 为什么

但是当我进行 GET 调用时,一切正常。

这是我在 laravel 中的路由文件:

Route::group(['middleware' => 'auth:api'], function () {
  Route::get('/user', function (Request $request) {
    return $request->user();
  });

  Route::post('/crear/dimension/', 'AdminController@createDimension');

});

PS:我在 laravel 中使用护照包。一切都配置好 因为我可以毫无问题地接听 GET 电话。事情在 POST 调用中,

我也做了一个 put ,patch call。结果和上面一样,

我也尝试过使用 vue 资源,但没有任何效果

//编辑

我删除了 api 调用末尾的斜线,得到了 401。 欲了解更多信息,请转到HERE

【问题讨论】:

  • 我也遇到同样的错误,请问您找到解决办法了吗?
  • 是的。您必须删除 laravel 中的 api 调用中的最后一个斜杠,以及使用 axios 或您使用的任何方法的 api 调用中的最后一个斜杠。
  • 我为你做了一个要点解释整个事情gist.github.com/pilsoftTeam/093980487651a27d28df034dbd27a3fb

标签: javascript php laravel http vue.js


【解决方案1】:

vue-resource 并未被弃用,它只是不再受到Vue 的官方支持。 Laravel 自动为vue-resource 定义了一个拦截器,所以csrf_token 会自动通过,你会在resources/assets/js/bootstrap.js 中找到以下内容:

Vue.http.interceptors.push((request, next) => {
    request.headers['X-CSRF-TOKEN'] = Laravel.csrfToken;

    next();
});

如果您使用不同的 ajax 库,则需要传递此 csrf_token。我不使用axios,但从他们的文档中,您可能需要在bootstrap.js 文件中包含类似的内容:

axios.interceptors.request.use(function (config) {
   config.headers['X-CSRF-TOKEN'] = Laravel.csrfToken;
   return config;
});

【讨论】:

  • 但这是否解释了为什么即使使用 axios 也可以进行 GET 调用?但是与他们中的任何一个一起发布
  • 一个帖子需要在 laravel 中使用 csrf_token,否则你会收到 405 error,我不知道为什么 chrome 会告诉你它是 GET,我认为 axios 已经过测试,所以它可能只是内部的东西。
猜你喜欢
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 2011-09-30
  • 2020-04-24
  • 2014-12-12
  • 2013-11-11
  • 2014-11-20
相关资源
最近更新 更多