我有这个:
途径:
Route::post('/send', 'MessagerieController@ajoutMessage')->name('send');
xmlhttp.open("post", "/send", true)
xmlhttp.setRequestHeader("X-CSRF-TOKEN", CSRF_TOKEN);
xmlhttp.send(donneesJson)
和php控制器:
if($_SERVER['REQUEST_METHOD'] == 'post'){
$donneesJson = file_get_contents('php//input');
$donnees = json_decode($donneesJson);
DB::table('messages')->insert([
'content' => 'lol',
'user_one' => 1,
'user_two' => 2
]);
我得到了200响应代码,但没有201。我不明白,它似乎在post server方法验证时阻塞,因为如果我将INSERT放在条件之外,数据将插入到db中
1条答案
按热度按时间3htmauhk1#
问题是
$_SERVER['REQUEST_METHOD']
返回大写请求方法POST
,如果条件与小写post
比较,则条件失败。由于您使用laravel,laravel已内置方法来检查请求类型,并且在您的情况下,ajoutMessage
方法仅用于发布请求,因此无需检查请求类型,因为您已专门为发布方法提到了路由。如果看到isMethod实现,它会在内部将param转换为大写。
和json方法参数