Я новичок в строю и углах. Я попытался отправить некоторые данные из службы в функцию контроллера 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 как приведенный ниже код в angular service, все в порядке и запускаю свой внутренний код.
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`))
);
}
Может кто-нибудь посоветовать мне?