Vue Js: 400 BAD REQUEST on patch ajax with vue-resource and Laravel

Vuejs: 400 BAD REQUEST on patch ajax with vue-resoure and Laravel

我不知道我做错了什么,但是我通过 Vue-resource 对 Ajax 补丁请求的请求 URL 得到了:

400 Bad Request

但这只是在本地环境上!!!当我将它推送到服务器时,它起作用了!

有人知道为什么吗?

这是我的要求:

var id = thing.id;
            this.$http.patch('/api/things/' + id, thing).then(function(data){
                console.log('edited to: '+data);
});

在开发工具中查看网络选项卡时,请求参数应该都是正确的。

这是我的路线:

Route::resource('/api/things','ThingsPanelController');

这是我的控制器:

public function update(Request $request, $id)
{
    Thing::findOrFail($id)->update([
        'body'=>$request->body,
    ]);
    return Response::json($request->all());
}

难道是因为我添加的ID是'api/things' + id,它在路由中不是把它当成通配符,而是当成字符串! ?

这是我使用的表格。我防止默认并有 ajax 请求,所以表单操作甚至不应该是相关的...

<form action="update" @submit.prevent="doneEdit(thing)">
    <input type="hidden" name="_method" value="PATCH">
    <input type="text"
        v-model="thing.body"
        v-thing-focus="thing == editedThing"
        @blur="doneEdit(thing)"
        @keyup.esc="cancelEdit(thing)"
    >
</form>

检查问题是否在您的本地服务器以及您的在线服务器上持续存在。

在这种情况下,问题仅出在本地服务器上。然后就这样做:
停止 artisan 的 serve,执行:php artisan cache:clear

然后重试:php artisan serve问题应该解决了。

问题可能是由CodeKit这样的程序引起的。即使您的 php artisan serve 将在 ip 8000 上提供服务,CodeKit 也会出于自动重新加载的原因更改此设置。这搞乱了 ajax 调用 uri。