Nginx上的离子应用程序和Access-Control-Allow-Header

时间:2018-09-12 09:10:46

标签: ionic-framework cors

我有一个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
我该如何解决这个问题?

1 个答案:

答案 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中不禁止跨源请求。