我正在使用一个使用ajax的Cordova应用程序。我的问题是在调试中,应用程序正在运行。但是当我构建一个版本时,我收到了错误:
{"readyState":0,"status":0,"statusText":"NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'https://sub.domain.tld'."}
我不明白它的来源。 我在res / xml / config.xml
中添加了必需的行<access origin="*" />
<access uri="*" subdomains="true" />
<feature name="http://api.phonegap.com/1.0/network"/>
AndroidManifest中的INTERNET权限。但错误仍在发生......
哦,这是我的ajax电话:
jQuery.support.cors = true;
$.ajax(
{
accepts: {
xml: "text/xml; charset=ISO-8859-1",
text: "text/plain; charset=ISO-8859-1"
}
, converters: {
"text xml": jQuery.parseXML
}
, type: "POST"
//, contentType: "text/xml; charset=ISO-8859-1"
, contentType : "application/x-www-form-urlencoded; charset=iso-8859-1"
, url: address
, async: false
, cache: false
, crossDomain: false
, data: msg
, dataType: "text"
, global: false
, ifModified: false
, username: this.params.server.login
, password: this.params.server.pass
, timeout: 500000
, beforeSend: function(jqXHR) {
jqXHR.overrideMimeType('text/xml;charset=iso-8859-1');
jqXHR.setRequestHeader("Access-Control-Allow-Origin", "*");
jqXHR.setRequestHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
jqXHR.setRequestHeader("Access-Control-Allow-Methods","POST, GET, OPTIONS, DELETE, PUT, HEAD");
}
}
)
希望您能够帮助我找到解决方案。
答案 0 :(得分:-1)
在beforeSend函数中返回false将取消请求
由于您的beforeSend
函数没有return语句,因此返回undefined
这是假的。我假设取消了您的请求(即使我没有测试它)。请尝试在true
功能结束时返回beforeSend
。