adt*_*adt 12 http cors angularjs asp.net-web-api2 ionic-framework
我正在尝试使用离子框架构建移动应用程序.当我的应用程序尝试连接服务器以获取json(服务器是web api和cors已启用)时,它只会在genymotion和真实设备上返回404.但是当我在浏览器中运行应用程序时,ionic serve一切正常.
我很确定CORS是功能性的.我在应用程序在浏览器中工作时得到的响应头.
响应
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Length:395
Content-Type:application/json; charset=utf-8
Date:Fri, 08 May 2015 20:24:04 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/7.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
Run Code Online (Sandbox Code Playgroud)
要求:
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, lzma, sdch
Accept-Language:tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:*******:14400
Origin:http://192.168.0.28:8100
Pragma:no-cache
Referer:http://192.168.0.28:8100/
Run Code Online (Sandbox Code Playgroud)
Config.xml <access origin="*"/>在配置中有 这一行
在我的app.js中,我删除了所有http调用的X-Requested-With标头.
.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
])
Run Code Online (Sandbox Code Playgroud)
我简单地在工厂类中使用get request to server.
$http.get(serverPath + "/api/mobilerest/mainPage");
Run Code Online (Sandbox Code Playgroud)
当我在Genymode或真实设备中运行应用程序时,响应为404,statusText为"未找到".我很确定web api正在工作,这种行为的原因是基于离子的应用程序,我的应用程序是本地文件,协议是file:///所以Origin头部在请求中为null,然后服务器返回404.我也试过没有任何服务器的本地文件我得到了与应用程序相同的错误.
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:server:14400
Origin:null
Pragma:no-cache
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
aor*_*vre 20
cordova-plugin-whitelist目前似乎是"强制性的".
安装它:
cordova plugin add cordova-plugin-whitelist
Run Code Online (Sandbox Code Playgroud)
配置config.xml
您可以使用*保留当前设置,或更改限制性规则
在index.html上添加一个html策略,你也应该添加一个策略.要授权一切,这里是:
<meta http-equiv="Content-Security-Policy" content="default-src *;
style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
'unsafe-eval'"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12672 次 |
| 最近记录: |