【问题标题】:Cordova AJAX 404 Error科尔多瓦 AJAX 404 错误
【发布时间】:2017-05-20 16:00:33
【问题描述】:

我正在使用cordova 开发一个android 应用程序,因此我还需要执行AJAX 请求。我使用 jQuery 处理请求,并在更新 index.php 安全策略后,将我的应用程序连接到远程服务器。但现在我收到错误 404 - 启动 AJAX 请求时未找到。 该错误是否与我发布到服务器的数据有关? url正确,我启用了白名单插件。

编辑:

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;
}

应用程序应该将用户名和密码发送到服务器,该服务器验证凭据并返回成功或错误用户或通过使用

echo "success";

例如。 我是否必须更改我的 API 的 PHP 脚本中的某些内容才能使选项 no-cache 工作,还是应该在没有任何干预的情况下正常工作?

【问题讨论】:

  • 很遗憾,您没有提供太多信息。但我怀疑 Ajax 请求 url 不是你认为的那样。您是否尝试过来自不同客户端(例如 Postman)的相同请求?
  • 不,下午会试试这个,我也会发布一些代码。我认为这应该为您提供一些解决问题的细节。 “ajax 请求 url 不是我认为应该的”是什么意思?
  • @pcfreakxxx 你在 config.XML 中有正确的访问源设置吗?
  • @Gandhi 我没有改变任何东西,所以它是 access-origin=*

标签: jquery ajax cordova


【解决方案1】:

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

【讨论】:

  • 在 90 分钟试图弄清楚为什么我的应用程序无法连接到任何东西之后,我找到了这篇文章,重新安装了 cordova-plugin-whitelist 并且它工作正常!感谢分享:-)
  • @james-geldart 很高兴听到:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
相关资源
最近更新 更多