我正在通过POST方法将Vue组件中的表单数据发送到Laravel API。
Laravel返回了很好的响应,但是我无法在Laravel控制器中管理POST数据。
这是客户端:
let body = JSON.stringify({
'email': user.email,
'password': user.password,
});
fetch("/login", {
method: "POST",
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
'X-CSRF-TOKEN': user.token, // NOTA: no X_CXRF-TOKEN
body: body
})
})
这是控制器
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class LoginJWTController extends Controller{
public function login(Request $request){
print_r ($request->all());
}
}
但是响应( 200 OK )是一个空数组:array []
在调试站点上,我看到请求标头具有:
正文:{“电子邮件”:“ me@xxxxx.xx”,“密码”:“ 12345678”}
为什么我的控制器中没有POST数据?我想念的是什么?
感谢您的帮助!
答案 0 :(得分:2)
当前,正文是标题的一部分。
请尝试以下操作:
let body = JSON.stringify({
'email': user.email,
'password': user.password,
});
fetch("/login", {
method: "POST",
headers: new Headers({
'Content-Type': 'application/json',
'X-CSRF-TOKEN': user.token, // NOTA: no X_CXRF-TOKEN
}),
body: body
})
也如Salman Zafar在评论中指出的那样,将内容类型设置为application/json
。