【问题标题】:Ajax POST request with jQuery, Cordova fails使用 jQuery 的 Ajax POST 请求,Cordova 失败
【发布时间】:2015-08-07 00:01:14
【问题描述】:

我正在尝试使用 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);
        }
    });

谁能帮帮我?

提前谢谢。

【问题讨论】:

    标签: jquery ajax cordova cross-domain


    【解决方案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 *">
    

    connect-src * 是 AJAX 调用所必需的。

    【讨论】:

      【解决方案2】:

      你能做以下改变吗?

      - Add dataType: 'json' and modify this contentType: "application/json;" to contentType: "application/json; charset=utf-8" in your ajax request to the server.
      

      【讨论】:

      • 嗨,阿德南,正如我在下面的回复中提到的那样......只需使用 CSP。
      猜你喜欢
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 2015-01-28
      • 2011-07-04
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多