2

我正在使用Phonegap3.0 android 构建。每当我在浏览器中运行该 url 时,我都会检查一个 url 以进行身份​​验证。在我的移动应用程序中,它的抛出错误为 xhr.status “0”。

当我警告下面的代码时,它给出了错误。

var ajaxRequest = $.ajax({
                type: "GET",
                url: getEmployeeURL,
                dataType: "json",
                cache: false
            });
            ajaxRequest.done(function() {
                utils.hideLoading();
                alert("Authentication Success");
                //utils.navigate("#dashboardView");
            });

ajaxRequest.fail(function(xhr, textStatus, errorThrown) {
                alert("Authentication failed");
                alert(xhr.status);
                alert(textStatus);
                utils.hideLoading();
            });

上面的 .fail 方法将状态抛出为“0”,将 textStatus 抛出为“错误”。我不知道为什么这不调用 url。

找到下面的 AndroidManifest.xml 权限

 <uses-sdk android:minSdkVersion="13" android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

我认为跨域与 $.ajax 有一些问题,但我设置了

<access origin="*" /> 

在根 config.xml 和 res/xml/config.xml 中

4

2 回答 2

1

尝试这样做:

在调用 AJAX 函数之前,您必须等待“deviceready”事件触发并添加 2 个代码行:

document.addEventListener('deviceready', function () {
jQuery.support.cors = true;
$.mobile.allowCrossDomainPages = true;
Examplerequest();
}, false);
于 2013-10-01T07:16:03.783 回答
0

有时状态是“0”,但它相当于“200”的成功,它也取决于 jquery 版本。

所以这些链接可以帮助你

http://simonmacdonald.blogspot.in/2011/12/on-third-day-of-phonegapping-getting.html

http://samcroft.co.uk/2010/loading-data-into-a-phonegap-app/

于 2013-10-01T08:26:41.527 回答