我有一个Ionic应用程序,该应用程序使用站点上托管的API,并带有ionic serve
和chrome cors插件,我可以使用该应用程序。
当我在ionic cordova run ios
的ios模拟器上尝试该应用时,该应用会启动,但不会显示任何内容。
使用野生动物园作为调试器,我发现了这个问题:
无法加载资源:请求标头字段User-Agent不是 由Access-Control-Allow-Header允许。
问题在于,在我的网站(Wordpress安装)中,我有以下代码:
function add_cors_http_header(){
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Methods: GET, POST, OPTIONS, DELETE, PUT');
header('Access-Control-Allow-Headers: Origin, User-Agent, Content-Type, Accept, Authorization, X-Request-With, X-CLIENT-ID, X-CLIENT-SECRET');
header('Access-Control-Allow-Credentials: true');
}
add_action('init','add_cors_http_header');
,如您所见,标头中允许使用User-Agent
。
我该如何解决这个问题?
答案 0 :(得分:0)
您应该为Ionic使用服务代理配置,而不是随机授予这些权限。
将此添加到您的ionic.config.json:
...
proxies: [
{path: "/path/to/resource", proxyUrl: "http://myserver.com/path/to/resource"}
]
...
查看此链接:https://ionicframework.com/docs/cli/configuring.html
我通常将这些URL放在配置文件中。我维护两个文件供开发和生产使用。将应用程序部署到设备后,您可以再次使用常规URL(生产配置文件),因为嵌入式WebView中不禁止跨源请求。