我在 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 中缺少任何结束标记,这只会在进行跨域调用时引起问题),但这对我没有帮助。
谁能弄清楚这里出了什么问题?如果需要,我很乐意提供更多数据。