CORS = Cross origin resource sharing 是跨域分享共享
当我们deploy Ionic 到 Android 或 IOS 是不会有CORS的问题. 但是如果在 development mode 使用 ionic serve
访问远端的API就会遇到下面的问题
XMLHttpRequest cannot load http://api.ionic.com/endpoint.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8100' is therefore not allowed access.
通常如果你有权限更改远端Server的话, 可以设定接受任何来源的请求, 但是当你使用第三方的API,就要另寻他法.
这里我提供的方法是更改IONIC端的设定.
首先在IONIC的Root 资料夹建立proxy.conf.json
. 里面的内容:
{ "/endpoint": { "target": "http://api.ionic.com", "changeOrigin": true, "secure": false, "logLevel": "debug" }}
接着在http request 使用相对应的 path
return this.http.get("/endpoint");
最后使用 ionic serve -- --proxy-config proxy.conf.json
开启本地的伺服器.
以下连结提供更详细的Angular代理配置
https://juejin.im/post/5d36fe605188255b5620a648