我正在使用laravel 5.3和角度为2的客户端构建API服务。当我尝试将登录表单作为JSON数据提交时,请求数据数组在登录控制器(Laravel)中为空[]
。我使用邮递员扩展测试了API,它可以工作并返回200状态代码。但当angular发送POST请求时,我不在我的控制器上接收任何内容。
Angular 2发布电话:
private authUrl = 'http://localhost:35656/api/authenticate';
var payload = JSON.stringify({ "email": email, "password": password });
console.log(payload);
return this.http.post(this.authUrl, payload, {
//headers: headers
}).map((response: Response) => {var status = response.json().status;});
Laravel Route
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS');
Route::post('authenticate', 'Auth\LoginController@authenticate');
Laravel控制器
/**
* Return a JWT
*
* @return Response
*/
public function authenticate(Request $request)
{
//$credentials = $request->only('email', 'password');
$credentials = $request->all(); // IS EMPTY
//$credentials = 'testing...';
return response()->json(['status' => true, 'error' => $credentials]);
}
如果我在Angular的POST调用中执行此操作,则可以正常工作。
return this.http.post('http://localhost:35656/api/authenticate?email=xxx@eeeee.com&password=xxxxx', '')
.map((response: Response) => {});
我的Laravel服务器http://localhost:35656,Angular 2在http://localhost:3000。
我做错了什么?
答案 0 :(得分:0)
将application/json
添加到标题中。