【发布时间】:2018-02-09 09:43:15
【问题描述】:
我正在尝试在 livereload 模式下处理 CORS 问题,但我无法找到合理的解决方案。我的后端是用 Java 开发的,它在 localhost 上运行。
命令:
ionic cordova 模拟 ios -l -c -s --address 127.0.0.1
ion.config.json:
{
"name": "Smartmarket",
"app_id": "",
"type": "ionic-angular",
"integrations": {
"cordova": {}
},
"proxies": [{
"path": "/SmartmarketWeb/endpoint",
"proxyUrl": "http://127.0.0.1:8080/SmartmarketWeb/endpoint"
}]
}
请求示例:
let headers = new Headers({
'Content-Type': 'application/json'
});
let options = new RequestOptions({ headers: headers });
return this.http.post('http://127.0.0.1:8080/SmartmarketWeb/endpoint/login', json, options)
.timeout(TIMEOUT_REQUEST*1000)
.map(this.extractData)
.do(this.logResponse)
.catch(this.handleError);
有人可以帮帮我吗?我尝试了许多解决方案,但是,它们都没有效果。
【问题讨论】:
-
应该指定 CORS 标头的是您的服务器端而不是您的客户端
-
@Liam 谢谢你的回答,但是不使用livereload模式(在IOS模拟器和真机中)如何正常工作?
-
@Liam 指出客户端不是指定 CORS 标头的地方。所以你需要从你的请求代码中删除
'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Credentials': true, 'Access-Control-Allow-Headers': 'origin, content-type, accept'。在你的前端 JavaScript 代码中添加这些不会有任何影响,只会进一步破坏事情 -
你是对的,我在服务器端应用了解决方案,它确实有效。
标签: ios angular http cors ionic3