我正在使用 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 方法将 status 抛出为“0”,将 textStatus 抛出为“error”。我不知道为什么这没有调用该网址。
找到下面的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中
最佳答案
尝试这样做:
在调用 AJAX 函数之前,您必须等待事件“deviceready”触发并添加 2 行代码:
document.addEventListener('deviceready', function () {
jQuery.support.cors = true;
$.mobile.allowCrossDomainPages = true;
Examplerequest();
}, false);
关于jquery - Phonegap3.0 $.ajax问题,无法调用跨域url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108920/