2

我在 jQueryMobile(包括 jQuery)和 jquery.jsonp(一个用于 jsonp 调用的特殊库)的组合中遇到了这个问题。

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

我已经环顾四周并遵循此相关问答中的建议:(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 命令时,将触发错误事件(以及完成事件)并且它给出的状态是“错误”。根据文档,这也可能是超时的。此外,在控制台中,是一个“未知的铬错误:0”

鉴别诊断

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

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

4

1 回答 1

1

多亏了Stackoverflow 上的问答,我才明白了这一点。这是关于访问来源。阻碍的不是 Android,而是 Phonegap。

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

准确的说是放在 [myProject]/www 文件夹下的 config.xml 文件中,否则下次构建时会被覆盖。这是关于白名单的 Phonegap 文档

于 2013-08-28T14:12:41.130 回答