android / ios上jQuery.ajax上的未定义错误

时间:2016-03-01 11:59:57

标签: jquery ajax

我的网站对我的其他api使用ajax请求,它在桌面浏览器(chrome,即ff)和我的Windows手机中的预期效果。 使用android或ios时,xhr响应未定义,并且在ajax错误回调中运行。 我的restapi的json响应是有效的,至少jsonlint是这样说的,它正在桌面上工作。

{
  "code": 1,
  "status": 200,
  "data": {
    "menuHome": "START",
    "menuAbout": "UEBER UNS",
    "menuTeam": "DAS TEAM",
    "menuContact": "KONTAKT",
    "menuFindus": "Besucht uns",
    "menuLanguage": "Sprache",
    "pageBannerHeadline": "Start",
    "pageBannerBreadFirst": "Breadfirst",
    "headline": "START",
    "footerTitleLeft": "Linker Titel",
    "footerTextLeft": "DE Lorem ipsum dolor sit amet, consectetur adipi sicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.",
    "footerTitleRight": "Kontaktieren Sie uns",
    "footerTextRight": "So erreichen Sie uns :",
    "footerTelefon": "1234 - 5678 - 9012",
    "footerEmail": "user@mail.de"
  }
}

响应来自PHPStorm rest客户端。 而ajax请求如下:

$.ajax({
        dataType: "json",
        type: "POST",
        url: "https://rest.domain.de/getLanguage.json",
        cache: false,
        data: {
            "username": "foo",
            "password": "bar",
            "lang": lang.toUpperCase(),
            "page": _site.toLowerCase()
        },
        header: {
            'Accept':'*/*',
            'Cache-Control': 'no-cache'
        },
        beforeSend: function (){
             alert("lang : " + lang.toUpperCase() + " page : " + _site.toLowerCase());
            // show loader
        },
        success: function (data) {
            // do something
        },
        error: function (xhr) {
                alert("Error : "+xhr.responseText);
        }
    });

两者,lang和_site都在手机上填充。我还尝试添加$ .support.cors = true;没有任何影响。

响应标题:

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2016 11:45:11 GMT
Server: Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1e-fips
X-Powered-By: PHP/5.4.45
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Access-Control-Allow-Origin: *
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8

我很困惑,因为我没有得到任何回复文本来确定在哪里仔细观察,也许有人可以通过指向正确的方向来帮助我?

2 个答案:

答案 0 :(得分:1)

我终于找到了它。 问题是SSL链中的失败,我更新了bundle.crt,它的工作就像一个魅力,所以如果其他人有类似的问题,也许可以考虑看看这个。

@ Kevin-B:感谢您的时间和帮助。

答案 1 :(得分:0)

经过数小时的测试,我发现了原因!这是因为dataType:json。删除,它将像魅力一样工作!和平