我正在做cordova android应用程序。在此我想要用户登录功能,该功能由REST API验证。但在移动设备中,它提供了ajax错误代码' 0'和thrownError空白。我已将我的设备连接到桌面系统以测试应用程序。
在桌面浏览器中,它运行正常。 我使用了以下代码,
apiurl = "http://xxx.xxx.xxx.xxx/restapi/";
$.ajax({
url: apiurl+'user-signin/login',
type: 'POST',
dataType :'json'
crossDomain: true,
beforeSend:function(){ $.mobile.loading( 'show' ); },
complete: function() { $.mobile.loading( 'hide' ) },
success: function (res) {
alert(res.status);
if(res.status == "success") {
goInsert(res.result.user_id, res.result.user_name, res.result.user_password);
window.location="dashboard.html";
} else if(res.status == "failed") {
alert(res.msg);
//alert(message[res.msg]);
}
},
error: function(xhr, textStatus, thrownError) {
alert(xhr.status+":"+textStatus+":"+thrownError);
navigator.app.exitApp();
},
data: new FormData($('#loginfrm')[0]),
cache: false,
contentType: false,
processData: false
});
我添加了"标题(" Access-Control-Allow-Origin:*"); "在我的休息时间。
我也使用了数据类型" jsonp",但它也不适用于我。
有人可以帮助我吗?
答案 0 :(得分:0)
如果您使用的是Cordova 5,则可能需要查看内容安全策略,该政策是index.html中的元标记 - 默认情况下,除非您将其修改为包含,否则不会允许此操作您的API网址。
尝试修改元标记(如果不存在则添加一个),如下所示:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://xxx.xxx.xxx.xxx/">
要深入了解此结帐http://moduscreate.com/cordova-5-ios-9-security-policy-changes/