gpt4 book ai didi

android - Phonegap android 应用程序使用 durandal : page with ajax call not opening

转载 作者:太空狗 更新时间:2023-10-29 14:17:58 25 4
gpt4 key购买 nike

我是 android 的新手,我遇到一个问题,即使用 Phonegap 开发的 native 应用程序无法加载带有 ajax 调用的页面。

跨域 AJAX POST 请求在 Web 浏览器(包括手机浏览器)上工作得很好,但不适用于使用 Phonegap 构建的 native 应用程序。

我在 durandal 中创建了一个应用程序,它从 Facebook 获取数据并显示在页面中。它在浏览器中运行良好,但带有 ajax 调用的页面未加载到使用 Phonegap 构建的 native 应用程序中。注意:其他静态页面工作正常。

我的 Ajax 脚本:

define(function(require){
return {
getCustomers:function(){
//do some ajax and return a promise
return $.ajax({
url: 'http://graph.facebook.com/facebook?callback=?',
dataType: 'json',
}).promise();
}
};
});

域白名单 - config.xml

<access origin="*"/>
<!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
<content src="index.html" />

用户权限

<uses-permission android:name="android.permission.INTERNET" />

我遇到了一个错误。我不知道这与此相关吗?

TypeError: Result of expression 'parentElement' [null] is not an object. at file:///android_asset/www/js/index.js:41

最佳答案

还必须在您的服务器端启用 CORS 参数,同时传递“mobile.allowCrossDomainPages = true;”在手机间隙。

在stackoverflow中搜索CORS相关问题,有很多解决方法。

让我解释一下为什么它在移动浏览器中有效,但在 phonegap 包装中无效。 Phonegap 打包从应用程序的本地文件系统中提取文件,使引用域成为“本地”。当您向 URL 发出请求时,它显然在不同的域中,因此是 CORS。在 phonegap 配置中启用 CORS 参数主要解决了这个问题。如果适用,您必须检查 web 服务/URL 是否支持 CORS。寻找服务器端 CORS 参数启用。

关于android - Phonegap android 应用程序使用 durandal : page with ajax call not opening,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19723642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com