【问题标题】:$.ajax on Windows Phone 8Windows Phone 8 上的 $.ajax
【发布时间】:2014-07-18 10:33:22
【问题描述】:

在使用 JQuery Mobile 的 Phonegap 应用程序中,我在 Windows Phone 8 和 8.1 上的 Jquery .ajax.get 遇到了一些奇怪的问题。

以下在 iOS 和 Android 上有效,但在 WP8 上静默失败。

    $.ajax({
        url: updateurl,
        type: "GET",
        dataType: "json"
    })
    .done(function (data) {
        alert("Done")
    })
    .fail(function () {
        alert("error");
    })
    .always(function () {
        alert("complete");
    });

.get 等效项同样失败。

服务器以 200 响应,所以我知道请求正在发送,但没有任何回调触发。

删除 JQuery Mobile 可解决此问题,但不是一种选择。

目前使用Phonegap 3.5.0、JQuery 1.11.1、JQM 1.4.3

还测试了 JQuery 1.7.2、JQM 1.3.2

我似乎找不到其他人遇到此问题。通过添加 JQM 标志 $.support.cors = true;$.mobile.allowCrossDomainPage = true; 似乎可以解决所有其他类似问题,但这没有任何效果,而且似乎也不是跨域问题。

我也尝试过使用promise.js,如here 所述,但这也以同样的方式失败。

有没有人遇到过这种情况并找到了解决方案?

【问题讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?
  • 嗨@DaleFraser。我们最终从头开始重建这个应用程序。如果您曾经做过任何 .NET 开发,这实际上相当简单

标签: jquery ajax jquery-mobile cordova windows-phone-8


【解决方案1】:

这可能是由于客户端积极缓存造成的错觉吗?

我遇到了类似的问题。就我而言,我正在发出 POST 请求以添加新项目,然后(一旦完成)执行 GET 以检索更新的状态。我看到 POST 通过了,但我的 UI 没有更新。

在我的情况下,后来的 GET 使用了缓存的结果——在我的 $.ajax 调用的选项中添加“cache: false”解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多