Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google chrome Mobile上的Ajax调用空响应_Javascript_Ajax_Google Chrome_Xmlhttprequest_Cors - Fatal编程技术网

Javascript Google chrome Mobile上的Ajax调用空响应

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端点 这是

我一直在寻找一个能很好地解决我问题的答案,但没有一个主题适合我的情况

我必须在我的应用程序中进行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控制台找到错误..感谢您的时间!