POST请求上的Angular 2和Laravel 5.3 API调用错误在控制器上为空

时间:2017-01-20 19:32:09

标签: laravel angular laravel-5.3

我正在使用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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

application/json添加到标题中。