我正在尝试使用jQuery在我的Cordova应用程序中设置登录屏幕。 我的REST api使用ExpressJS。 我可以通过移动浏览器访问我的Web应用程序。 但是,当我从Cordova应用程序尝试相同的登录表单时,它无法正常工作。
基本上问题是我无法将登录表单的结果发布到我的后端。
我的ajax代码是:
$.ajax({
url: "http://192.168.2.23:3000/login",
type: 'POST',
contentType: 'application/json',
crossDomain: true,
data: JSON.stringify({"u": "test", "p": "test"}),
success: function(data) {
var backendData = JSON.parse(data);
if (backendData["UserFound"]) {
loggedInPerson = backendData;
delete loggedInPerson["UserFound"];
}
},
error: function(e) {
alert('Error: ' + e.message);
}
});
有人能帮助我吗?
Thnx提前。
答案 0 :(得分:1)
对于所有寻找答案的人...... 我必须在index.html文件中编辑内容安全策略并添加此
<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 *">
AJAX调用需要 connect-src * 。
答案 1 :(得分:0)
您可以进行以下更改吗?
- Add dataType: 'json' and modify this contentType: "application/json;" to contentType: "application/json; charset=utf-8" in your ajax request to the server.