我正在学习使用Laravel Back End构建React JS WebApp。我试图插入数据时遇到问题,似乎我在控制器中的插入函数没有被调用我尝试的任何方法。这是代码;
JS:
fetch( '/api/links/', {
method:'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(link)
})
.then(response => {
return response.json();
})
.then(data => {
//update the state of links
});
/routes/api.php:
Route::post('links', 'LinksController@store');
/app/Http/Controllers/LinksController.php:
public function store(Request $request)
{
$link = new Link;
$link->title = 'Hard Coded Just For Testing';
$link->url = 'http://but.still/not-inserted-to-database/';
$link->save();
return response()->json(null, 200);
}
我的期望在我的链接表中应该有一条新记录,但没有新插入。
我错过了什么?请帮助。
更新: 事件虽然我将方法设置为在获取选项中发布,但事实证明,当我在开发人员工具中观察 - 网络选项卡时,它奇怪地改为GET方法,这就是为什么它永远不会调用我的存储函数来插入数据。有谁知道是什么原因引起的?
答案 0 :(得分:0)
解决: 事实证明,由于在获取URL的末尾有额外的'/',而在routes / api.php中,URL在其末尾没有'/',这导致在原始调用/ api / links时重新路由/ POST通过GET重新路由到/ api / links。因此,只需从路径和获取中完美匹配URL,即可解决问题。