Я новичок в Angular, и я занимаюсь разработкой службы авторизации для входа, но у меня возникают некоторые проблемы с созданием почтовых данных для бэкенда, разработанного в CodeIgniter.
Я отправляю: имя пользователя и пароль пользователя, на URL: http://192.168.1.162/advance-managemente_2.1/login
Следуйте за моим кодом:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { UserData } from './login/user.model';
@Injectable({
providedIn: 'root'
})
export class AuthService {
constructor(private http: HttpClient) { }
userData: UserData;
getUserDetails(username, userpassword) {
console.log(username, userpassword);
const userdata = JSON.stringify({user: {login: username, password: userpassword}});
const headers = new HttpHeaders({'Content-Type': 'application/x-www-form-urlencoded'});
console.log(userdata);
// post these details to API server return user info if correct.
return this.http.post(`http://192.168.1.162/advance-management_2.0/login`, userdata, {headers: headers, observe: 'response'})
.subscribe(res => {
console.log(res);
},
err => {
console.error(err);
});
}
}
И моя консоль:
Примечание: мои переменные с username и userpassword работают.
А в бэкэнд-проекте codeigniter установлены следующие заголовки:
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Access-Control-Allow-Origin');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE');
И функция os codeigniter:
function login(){
$json = $this->input->post('user');
echo json_encode($json);
}
Если вы заметили, у моей функции входа в систему есть ECHO с json_encode, который я посылаю ей.
Но в консоли тело возвращает NULL.
Я хотел бы знать, что я могу делать неправильно и как это исправить, потому что он должен был вернуть JSON, но, похоже, он не идентифицирует мой POST.
Спасибо всем, кто может помочь,
Хорошего дня!