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。
我不知道我做错了什么,但是我通过 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。