Cordova AJAX 404错误

时间:2017-01-05 23:15:11

标签: jquery ajax cordova

我正在使用cordova开发一个Android应用程序,因此我还需要发生AJAX请求。我正在为请求使用jQuery,在更新index.php安全策略后,我将其连接到远程服务器。但现在我收到错误404 - 启动AJAX请求时找不到。 该错误可能与我POST到服务器的数据有关吗? 网址是正确的,我启用了白名单插件。

编辑:

function ajaxrequestlogin() {
    var login_username=$("#username").val();
    var login_password=$("#password").val();
    var dataString="username="+login_username+"&password="+login_password;
    $.ajax({
    type: "POST",
    url: "http://www.my-url.de/path/to/myapi.php",
    data: dataString,
    crossDomain: true,
    cache: false,
    beforeSend: function(){ $("#message").html('Verbinde...');},
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);},

    success: function(data){
        if(data=="success") {
            window.localStorage.setItem(loggedin, true);
            window.localStorage.setItem(username, login_username);
            window.localStorage.setItem(password, login_password);
            alert("Erfolgreich eingeloggt als "+login_username);
        }
        else if(data=="wrong_userorpass") {
            alert("Username und Passwort stimmen nicht überein!");
        }
        else if(data=="failed") {
            alert("Ups! Ein Fehler ist aufgetreten. Bitte versuche es erneut.");
        }
    }
    });
    return false;
}

应用程序应将用户名和密码发送到服务器,该服务器验证凭据并使用

返回success或wrong_userorpass
echo "success";
例如,

。 我是否必须在API的PHP脚本中更改某些内容以使选项无缓存工作,或者它是否可以在没有任何干预的情况下正常工作?

1 个答案:

答案 0 :(得分:8)

好的,经过几个小时的尝试,更改安全策略和config.xml后我终于解决了问题,所以我只是分享给你,因为我认为这是一个很常见的问题当尝试将Ajax与cordova应用程序一起使用时。 在尝试解决问题的同时,我读了10个论坛帖子,其中有人更新了他们的cordova,然后Ajax丢失了404错误。这些人的解决方案总是只安装cordova-plugin-whitelist插件。对我来说(我下载了6.3版本)这个插件已经安装并激活,所以我没有理会这些答案。在今晚尝试了之后,我意识到我的脚本一切正常,它必须是一个特定于cordova的问题(我用浏览器版本的ajax请求测试了它)所以我只是输入 cordova plugin add cordova-plugin-whitelist。 它已安装(即使插件已安装并处于活动状态),此后立即一切正常。 因此,即使您认为白名单插件不是问题:只需尝试再次安装它就可以正常工作。