Отправьте данные json через угловой пост http до контроллера laravel

Я новичок в ларавеле и угловат. Я попытался отправить некоторые данные из службы в функцию в контроллере laravel. Здесь мой код laravel:

public function authenticate(Request $request){
    file_put_contents('test.txt','run');

    header("Access-Control-Allow-Origin: *");
    header('Access-Control-Allow-Methods: GET, POST, DELETE, PUT, OPTIONS');
    header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Request-With');
    header('Access-Control-Allow-Credentials: true');

    $name=$request->input('name');
    $password=$request->input('password');
    $message='Not Found'

    $user=User::where(['name'=>$name])->first();
    if($user->checkPasswordAttribute($password)){
        $message='Found'
    }
    return response()->json([
        'message' => $message,
    ]);
}

Здесь мой угловой код обслуживания через json:

login(user: User): Observable<User> {
return this.http.post<User>(this.usersUrl, user, httpOptions).pipe(
  tap( _ => this.log('fetched user')),
  catchError(this.handleError<User>(`getUser`))
);

}

с этим HttpHeaders:

const httpOptions = {  headers: new HttpHeaders({ 'Content-Type':  'application/json' })};

Выше кода ничего не посылайте, даже не запускайте file_put_content, который я добавляю для теста. Но когда я использую formData, как показано ниже в угловом сервисе, все в порядке и запустите мой внутренний код.

login(user: User): Observable<User> {
const postData = new FormData();
postData.append('name', user.name);
postData.append('password', user.password);
return this.http.post<User>(this.usersUrl, postData).pipe(
  tap( _ => this.log('fetched user')),
  catchError(this.handleError<User>(`getUser`))
);

}

Может кто-нибудь посоветует мне?

Всего 1 ответ


Это расшифрует полезную нагрузку j запроса http.

$data = json_decode($request->getContent(), true);

Есть идеи?

10000