无法执行'发送' on' XMLHttpRequest'

时间:2015-02-11 11:29:36

标签: javascript ajax cordova

我正在使用一个使用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");
                }
            }
        )

希望您能够帮助我找到解决方案。

1 个答案:

答案 0 :(得分:-1)

jQuery documentation州:

  

在beforeSend函数中返回false将取消请求

由于您的beforeSend函数没有return语句,因此返回undefined这是假的。我假设取消了您的请求(即使我没有测试它)。请尝试在true功能结束时返回beforeSend