【问题标题】:Jquery-jsonp gives "error" on Android, but not in desktop browserJquery-jsonp 在 Android 上给出“错误”,但在桌面浏览器中没有
【发布时间】:2013-08-30 11:38:03
【问题描述】:

结合使用 jQueryMobile(包括 jQuery)和 jquery.jsonp(用于 jsonp 调用的特殊库)时,我遇到了这个问题。

This 是 jquery.jsonp 库的 git 存储库。不久前,我决定使用这个特殊的库,而不是使用带有 datatype:"jsonp" 选项的 $.ajax,所以我不记得确切原因,除非它是或似乎是必要的。

我已经环顾四周并遵循this related Q&A 中的建议: (1)我在本地加载所有的js和其他文件 (2) $.support.cors 和 $.mobile.allowCrossDomainPages 设置为 true (3) jQuery声称的$变量周围没有冲突

代码

所以肯定发生了一些不同的事情。这是我的代码...

$.jsonp({
    data: allData,
    url: 'https://www.ssl-id.net/afford-it.me/functions/spendable2.php',
    cache: false,
    timeout: 6000,
    callbackParameter: "callback",
    success: function(returned,status){ ... },
    error: function(repeatedOptions,status){...},
    complete: function(repeatedOptions,status){...},
};

错误

当应用程序触发这个 jsonp 命令时,会触发错误事件(以及完成事件)并且它给出的状态是“错误”。根据docs,这也可能是超时的。 另外,在控制台中,是一个“未知的铬错误:0”

鉴别诊断

当我在桌面浏览器中运行应用程序时没有问题:它只发生在 Android 上。 This guy 有一个很好的解释(Android 会拒绝 html 中任何缺少的结束标记,这只会在进行跨域调用时导致问题)但它对我没有帮助。

谁能弄清楚这里出了什么问题?如果需要,我很乐意提供更多数据。

【问题讨论】:

    标签: jquery jquery-mobile jsonp


    【解决方案1】:

    多亏了 Stackoverflow 上的 this Q&A,我才弄明白了。这是关于访问来源。阻碍的不是 Android,而是 Phonegap。

    Phonegap 不允许跨域,除非您在 config.xml 文件中指定域名。

    准确的说是放在[myProject]/www 文件夹下的config.xml 文件中,否则下次构建时会被覆盖。这是Phonegap documentation on whitelisting

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 2015-11-10
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2012-04-11
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多