我的网站对我的其他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
我很困惑,因为我没有得到任何回复文本来确定在哪里仔细观察,也许有人可以通过指向正确的方向来帮助我?
答案 0 :(得分:1)
我终于找到了它。 问题是SSL链中的失败,我更新了bundle.crt,它的工作就像一个魅力,所以如果其他人有类似的问题,也许可以考虑看看这个。
@ Kevin-B:感谢您的时间和帮助。
答案 1 :(得分:0)
经过数小时的测试,我发现了原因!这是因为dataType:json。删除,它将像魅力一样工作!和平