我已经在我的应用程序中添加了WKWebView,并且正如文档中建议的CORS API调用现在我需要通过HTTP调用来调用它。 我也添加了必要的标题。但我在错误块中得到200 ok和XML数据。我的代码如下:
let headers = {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/rss+xml; charset=UTF-8',
'Access-Control-Allow-Headers': 'Content-Type, Accept , Origin, X-Requested-With',
'Access-Control-Expose-Headers': 'X-Custom-header',
'Access-Control-Allow-Methods': 'GET , POST , OPTIONS'
};
this.httpIonic.get('http://www.myserver.com/blog/feed/', {}, headers)
.then(data => {
console.log("--------------------------res:::::");
console.log(data.status);
console.log(data.data); // data received by server
console.log(data.headers);
console.log("--------------------------res:::::");
})
.catch(error => {
console.log("--------------------------error:::::" + JSON.stringify(error));
// console.log("--------------------------error:::::" + error);
// console.log("--------------------------error:::::" + error.status);
// console.log("--------------------------error:::::" + error.error); // error message as string
console.log("--------------------------error:::::" + JSON.stringify(error.headers));
// console.log("--------------------------error:::::" + error);
});
问题是当我在iOS模拟器中运行应用程序时,我得到了错误响应并且还获得了xml值,理想情况下我应该得到响应但是如果我打印error.error它显示xml。
答案 0 :(得分:-1)
首先,您还没有在API / Web服务文件中实现CORS标头,您所做的是您已经在js文件中编写了这些标头,但这是错误的。 您的CORS标头是正确的,但文件错误。
此外,
您可以使用ionic native http插件来解决cors问题。
我已成功地在我们的项目中使用它来解决角色问题。
根据离子官方文件:
“如果不可能在中实施或配置CORS 服务器,有一个可以“代理”HTTP请求的本机插件 使用本机代码,因此可以完全绕过CORS“