如何将json响应从laravel返回到angular?

时间:2017-03-16 11:41:29

标签: laravel laravel-5 laravel-5.2

我在控制器中有这个:

public function index(Request $request){
  $email = $request->email;
 $password = $request->password;
if (!$email || !$password) {return redirect()->back();}
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    // Authentication passed...
    $this->loggedUser = Auth::user();
    if($this->loggedUser){

        return response()->json(['isLoggedIn' => true],200);
    }

}
return response()->json(['isLoggedIn' => false],200);

}

在角度我有这个:

Login (body: Object): Observable<Login[]> {
        let bodyString = JSON.stringify(body); // Stringify payload

        let options = new RequestOptions({ headers: this.headers }); // Create a request option

        return this.http.post('/index', body, options) // ...using post request
                         .map(response => {return response} ,console.log('aaa')) // ...and calling .json() on the response to return data
                         .catch((error:any) => Observable.throw(error.json().error || 'Server error' )); //...errors if any
    }

问题是,当我在浏览器响应中打开时,我得到了这个:

  


已弃用:自动填充   $ HTTP_RAW_POST_DATA已弃用,将来会被删除   版。为了避免这种警告,请设置“always_populate_raw_post_data&#39;至   &#39; -1&#39;在php.ini中使用php://输入流代替。在   行 0 未知 警告:不能   修改标题信息 - 已在未知中发送的标题   line 0
{&#34; isLoggedIn&#34;:false

}

任何建议如何解决这个问题以便我得到json?

1 个答案:

答案 0 :(得分:1)

这是来自PHP5.6的警告,它会掩盖您从请求中获取的数据。

进入你的php.ini文件并更新这一行

;always_populate_raw_post_data = -1

always_populate_raw_post_data = -1

进行此更新后,请不要忘记重启apache