Jquery-jsonp在Android上给出“错误”,但在桌面浏览器中没有

时间:2013-08-27 15:53:01

标签: jquery jquery-mobile jsonp

我遇到了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中任何缺少的结束标记的安卓程序,这只会在进行跨域调用时导致问题),但它对我没有帮助。

谁能弄明白这里有什么问题?如果需要,我很乐意提供更多数据。

1 个答案:

答案 0 :(得分:1)

所以我想通过Stackoverflow上的this Q&A来理解它。这是关于访问来源。这不是Android的阻碍,而是Phonegap。

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

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