Ionic:IOS仿真器有点奇怪的CORS问题

时间:2017-04-18 14:34:31

标签: ios django ionic-framework django-cors-headers

这是代码。

/^[0-9]*[\u007C-]{1}[0-9]*$/

我正在使用$http({ method: 'GET', url: imageUrl }); 框架。它在web,andorid mobile和android模拟器中工作正常。

但是当我在IOS 9.3模拟器(4.1.1)中使用相同内容时,我收到错误Ionic

我想我可以消除后端中的任何可能的错误,因为它正在与其他UI框架一起使用。同样在后端(XMLHttpRequest cannot load 'imageUrl'. Origin 'XXX' is not allowed by Access-Control-Allow-Origin.)我已将Django frameworkCORS_ORIGIN_ALLOW_ALL设置为CORS_ALLOW_CREDENTIALS,将端口的IP地址添加到True以及所需的标头(包括CORS_ORIGIN_WHITELIST中的Access-Control-Allow-Origin}。

那么,是否需要采取任何具体措施才能使IOS仿真器/平台出现此错误?

2 个答案:

答案 0 :(得分:0)

当你跑步时:

ionic cordova emulate ios -l -c -s

我的猜测是,您正在做的是,模拟器已启动并且绑定到您的Mac的IP地址而不是“本地主机”#39;。这会导致您的接收端点在您的获取请求的请求标头中看到您的Mac的IP,因为这是一个与模拟器不同的地址,它会将您的请求视为跨域请求。

请尝试Ionic团队的以下指南:

Handling CORS issues in Ionic

简而言之:

  1. 在ionic.config.json文件中设置代理:

    { "name": "proxy-example", "app_id": "", "proxies": [ { "path": "/api", "proxyUrl": "http://cors.api.com/api" } ] }

    1. 使用您的实时重新加载服务器正在使用的端口将您的请求指向localhost。您可以在模拟命令中设置此项,如下所示:
    2. 离子cordova模拟ios -l -c -s --port 8080

答案 1 :(得分:0)

CORS问题是应该在服务器上处理的问题。如果您使用Azure来部署Web Api和Azure数据库服务, 1.打开仪表板。 2.打开您的Web API应用程序服务。 3.从菜单中的API标头下选择CORS。 4.允许来源* Reference Image 并且也不要忘记在Azure SQL服务器的防火墙设置中允许所有IP [0.0.0.0到255.255.255.255] Reference Image 2