PhoneGap 1.5.0 Android Cordova AJAX JSON

时间:2012-03-13 00:08:50

标签: jquery android ajax cordova

我一直试图通过运行最新1.5.0 PhoneGap的Android PhoneGap应用程序发送一天以上的AJAX请求。我已经尝试了来自stand jQuery包(不是jQuery Mobile)的GET,POST,AJAX,getJSON请求。所有这些都在标准浏览器中运行,但App中没有任何工作。

这是我最新的jQuery AJAX代码

$.get(
    'http://www.fakedomainname.com/ajax/user_login.php',
    $('#emailLoginForm').serialize(),
    function(json) {
        //console.log(json);
        alert(json.status);
    },
    'json'
);

这是我的PHP代码

header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); 
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json'); 

$output['status'] = 99; //new user  

echo json_encode($output);

我已将clearCache添加到AndroidManifest.xml

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.clearCache();
        super.loadUrl("file:///android_asset/www/index.html");
    }

我已将此添加到/res/xml/cordova.xml

<access origin=".*"/>

我还缺少什么?我无法获得GET jQuery请求以成功提醒任何内容?我已确保清除缓存。我已经将我的php文件的标题和我的cordova.xml文件中的跨域问题列入白名单。我迷路了,有没有人用新的PhoneGap 1.5.0成功创建了一个AJAX呼叫?

错误是我的错。我正在点击的URL还包括一个功能,该功能检查用户代理是否是移动设备。如果是这样,它会将呼叫重定向到我要求的域/网站的移动友好版本。结果我的json值永远不会被返回。我删除了移动设备检查功能,上面的所有设置都运行良好。

2 个答案:

答案 0 :(得分:1)

您是否已将Internet权限添加到Android manifest.xml:

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

如果是这样,它是否在正确的位置(在应用程序标记内)?

答案 1 :(得分:1)

super.init(); 
super.clearCache();

您错过了init。尝试添加以上内容。