Javascript Google chrome Mobile上的Ajax调用空响应
我一直在寻找一个能很好地解决我问题的答案,但没有一个主题适合我的情况 我必须在我的应用程序中进行AJAX调用,它在所有桌面浏览器上都能正常工作,在某些移动浏览器上也能正常工作(例如在我的华硕zenPhone本机浏览器上,甚至在我的iPhone上也能正常工作(FF和Safari)),但在谷歌Chrome(mobile)中不行,在这一次调用中,调用完成,但响应为空(仅为空,未提供错误)…我请一些朋友也对其进行测试,结果类似于occours(空响应)…我有一个https服务器和一个https端点 这是我的代码:Javascript Google chrome Mobile上的Ajax调用空响应,javascript,ajax,google-chrome,xmlhttprequest,cors,Javascript,Ajax,Google Chrome,Xmlhttprequest,Cors,我一直在寻找一个能很好地解决我问题的答案,但没有一个主题适合我的情况 我必须在我的应用程序中进行AJAX调用,它在所有桌面浏览器上都能正常工作,在某些移动浏览器上也能正常工作(例如在我的华硕zenPhone本机浏览器上,甚至在我的iPhone上也能正常工作(FF和Safari)),但在谷歌Chrome(mobile)中不行,在这一次调用中,调用完成,但响应为空(仅为空,未提供错误)…我请一些朋友也对其进行测试,结果类似于occours(空响应)…我有一个https服务器和一个https端点 这是
<script>
var x = Math.floor((Math.random() * 10000000) + 2000);
var data = JSON.stringify({
"Token": x,
"Subject": "testAPI"
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
//console.log(this.responseText);
var dataJ = JSON.parse(this.responseText);
var dataA = dataJ.Questions;
alert(dataA[0].img);//this is already empty on my mobile :(
dataA.forEach(function(entry) {
//console.log(entry);
});
}
});
xhr.open("POST", url);
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("cache-control", "no-cache");
xhr.send(data);
</script>
var x=数学地板((数学随机()*10000000)+2000);
var data=JSON.stringify({
“令牌”:x,
“主题”:“testAPI”
});
var xhr=new XMLHttpRequest();
xhr.addEventListener(“readystatechange”,函数(){
if(this.readyState==4){
//console.log(this.responseText);
var dataJ=JSON.parse(this.responseText);
var dataA=dataJ.问题;
警报(dataA[0].img);//这在我的手机上已经是空的:(
dataA.forEach(函数(条目){
//控制台日志(条目);
});
}
});
xhr.open(“POST”,url);
setRequestHeader(“内容类型”、“应用程序/json”);
setRequestHeader(“缓存控制”、“无缓存”);
发送(数据);
服务器端COR是启用的,正如我所说的,它在我测试的所有桌面上都能完美工作……我不知道我是否能向你们提供url(我必须询问@API提供者),但如果你们给我一些提示,那就太好了
非常感谢您抽出时间
[编辑]
遇到一些麻烦后,我出现了一个错误(使用开发工具从我的手机到我的电脑进行远程测试)
未能加载资源:net::错误\u不安全\u响应
在另一台设备上,我没有收到此错误…这是一个很难解决的问题,但请尝试将内容类型标题设置为:
xhr.setRequestHeader("content-type", "text/plain");
这将抑制chrome所做的CORS预处理,从而导致空响应。这样API就不再接受数据令牌了。我自己也无法对服务器端进行编码:(当您更改内容类型标题时,它是否会给您一个错误/拒绝访问的响应?是的,ofc,我认为这是一个编码错误(服务器端):错误:重复令牌:未定义发现这是一个证书问题,服务器端…我可以使用远程google控制台找到错误..感谢您的时间!