我遇到了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命令时,错误事件将触发(以及完成事件),并且它提供的状态为“error”。根据{{3}},这也可能是暂停的。 此外,在控制台中,是“未知铬错误:0”
鉴别诊断
在桌面浏览器中运行应用程序时没有问题:它只发生在Android上。 docs有一个很好的解释(在HTML中任何缺少的结束标记的安卓程序,这只会在进行跨域调用时导致问题),但它对我没有帮助。
谁能弄明白这里有什么问题?如果需要,我很乐意提供更多数据。
答案 0 :(得分:1)
所以我想通过Stackoverflow上的this Q&A来理解它。这是关于访问来源。这不是Android的阻碍,而是Phonegap。
除非您在config.xml文件中指定域名,否则Phonegap不允许跨域。
准确地说,将它放在[myProject] / www文件夹的config.xml文件中,否则它将在下一次构建时被覆盖。这是Phonegap documentation on whitelisting。