Vuejs:400补丁请求补丁ajax与vue-resoure和Laravel

时间:2016-07-15 11:09:38

标签: ajax laravel laravel-5.2 patch vue.js

我不知道自己做错了什么,但我通过Vue-resource获取Ajax补丁请求的请求网址正在获取:

  

400错误请求

但这只是在当地的环境!当我将它推送到服务器时,它可以工作!

有谁知道为什么?

这是我的要求:

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>

1 个答案:

答案 0 :(得分:0)

检查本地服务器上的问题是否仍然存在,以及实时服务器

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

然后再试一次:php artisan serve,问题应该解决。

问题可能是由于 CodeKit 等程序引起的。即使您的php artisan serve将在ip 8000上提供服务,CodeKit也会因自动重新加载原因而对其进行更改。这弄乱了ajax的呼唤uri's。