我正在尝试从 Ionic 4 向我的 Laravel API 发出 http post 请求。我之前已经使用相同的 API 成功创建了其他 Post。但出于某种原因,我不能让这个工作。
Laravel 后端的方法接收一个 ID,然后发送一封附有 PDF 的电子邮件。
我已经用 Postman 工具对其进行了测试,它运行良好。但是当我在 Ionic 4 App 上测试时它不起作用。
我尝试使用不同的选项更改标题但没有运气。
我在 Laravel 后端设置了 CORS,如下所示:
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
header("Allow: GET, POST, OPTIONS, PUT, DELETE");
$method = $_SERVER['REQUEST_METHOD'];
if($method == "OPTIONS") {
die();
}
在 Postman 上它按预期工作:https : //i.imgur.com/sNuJCzK.png https://i.imgur.com/ZgLJA20.png
这是我的Player.service.ts:
pdf(idPlayer): Observable<any> {
let json = {
idplayer : idPlayer
};
let params = "json=" + JSON.stringify(json);
const httpOptions = {
headers: new HttpHeaders({
'Accept': 'application/json',
'Authorization' : localStorage.getItem("token"),
'Content-Type' : 'application/x-www-form-urlencoded',
})
};
console.log("PDF PARAMS:");
console.log(params);
return this._http.post('http://127.0.0.1:8000/api/pdf/email', params, httpOptions);
}
这是在我的Tab-Profile.page.ts上调用服务的函数:
enviarPdf() {
this._playerService.pdf(this.player._id).subscribe(
response => {
console.log("SEND PDF:");
console.log(response);
},
error => {
console.log("error sendPDF:");
console.log(error);
});
}
这是 Chrome 控制台上的错误:
慕容森