【问题标题】:Cordova $.ajax request wont workCordova $.ajax 请求不起作用
【发布时间】:2017-11-21 08:21:34
【问题描述】:

我遇到了关于 cordova ajax reuest 的问题。

  $.ajax({
    url: syncURL,
    data: (changed ? {start: changed + 1} : ''),
    dataType: "json",
    success: function (data) {
      console.log('Ajax success');
      callback(data);
    },
    error: function(model, response) {
      console.log('Ajax error');
      //app.notify(response.responseText, 'error');
      callback(null);
    }
  });

程序在控制台日志中显示 Ajax 成功。我可以通过以下方式在浏览器上观看应用内的内容:

cordova serve

不幸的是,如果我想部署到 ios 模拟器或 android 设备上,应用程序不会加载内容并得到一个没有数据的空 json。

我做错了什么。模拟器或安卓设备有网络连接。 我也没有在日志中看到任何内容。 还添加了

cordova plugins add cordova-plugin-whitelist

cordova 版本是 7.1.0

【问题讨论】:

  • 您是否尝试过将其部署在您的手机上,并具有网络连接?尝试将 放在 config.xml 中,这将允许对任何站点的请求。如果您想将其限制为单个站点,请输入站点名称而不是 *。希望有效

标签: ajax cordova request whitelist


【解决方案1】:

我遇到了同样的错误,从 phonegap-vue-f7 template 开始并使用 axios 作为 Ajax 库。

对于http://my.domain.com/api/request 的相同请求:

  • 返回代码 200 和本地 cordova servenpm startphonegap-vue-f7 template
  • 当我部署到真实设备时返回代码404

phonegap-vue-f7 template 提供了一个预先填写的 config.xml

<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />

此时我必须安装 cordova-plugin-whitelist 才能使其工作。

所以正确配置的cordova-plugin-whitelist plugin 似乎就是答案。

【讨论】:

    【解决方案2】:

    不确定,但可能是data: 值不正确

    data: (changed ? {start: changed + 1} : '')
    

    如果你改成:

    data: (changed ? '{start: changed + 1}' : '')
    

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 2014-12-28
      • 2017-02-11
      • 2016-05-08
      • 2015-09-08
      相关资源
      最近更新 更多