[英]CORS Issue with Ionic & Capacitor on android live device
希望有人能在这里帮助我; 尝试使用带电容器的 Ionic 并在尝试通过 POST 上传图像时仅在 Android 9 Live 设备上遇到以下 CORS 错误:
E/Capacitor/Console: File: http://localhost/add-item - Line 0 - Msg: Access to XMLHttpRequest at 'https://MYURLGOESHERE/api.php' from origin 'http://localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
在离子中:
import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';
...
this.http.post("https:://MYURLGOESHERE/api.php", postObject, {headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
...
api PHP脚本:
<?php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Expose-Headers: access-control-allow-origin");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers: *');
header('Access-Control-Max-Age: -1');
header('Access-Control-Allow-Methods: GET,POST,OPTIONS');
header('Content-Type: application/json');
...
我已经检查过服务器上的所有最大上传大小是否都超过了我尝试上传的图像的大小,并且我已经使用以下 CURL 测试确认不存在 CORS 错误:
curl -H "Access-Control-Request-Method: POST" -H "Origin: http://localhost" -I --head https://MYURLGOESHERE/api.php
我完全不知道问题可能是什么。 所有其他未在设备上上传图像的 POST 请求都没有相同的 CORS 问题。 任何人对这里可能发生的事情或我可以检查的其他事情有任何想法吗?
对于遇到同样问题的任何人,解决方案是删除标题
'Content-Type': 'application/x-www-form-urlencoded'
来自发布请求,并解决了所有平台上的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.