Google chrome extension 使用php刷新时,xmlhttprequest未为就绪状态3触发响应事件处理程序
我正在使用xmlhttprequest从google chrom extension向远程服务器发送请求 我在manifest.json中设置了访问远程主机的权限 基本上,它工作正常。我所期望的是readystate 4,它在响应完成时被触发 因为在服务器端这是一个8到10秒的过程,所以我使用从服务器端到客户端的echo来更新状态 所以我使用readyState==3条件来显示服务器响应 但是当我测试readystate 1和4时,它们正在启动事件处理程序,而不是2和3 这是我使用的代码Google chrome extension 使用php刷新时,xmlhttprequest未为就绪状态3触发响应事件处理程序,google-chrome-extension,xmlhttprequest,cross-domain,readystate,Google Chrome Extension,Xmlhttprequest,Cross Domain,Readystate,我正在使用xmlhttprequest从google chrom extension向远程服务器发送请求 我在manifest.json中设置了访问远程主机的权限 基本上,它工作正常。我所期望的是readystate 4,它在响应完成时被触发 因为在服务器端这是一个8到10秒的过程,所以我使用从服务器端到客户端的echo来更新状态 所以我使用readyState==3条件来显示服务器响应 但是当我测试readystate 1和4时,它们正在启动事件处理程序,而不是2和3 这是我使用的代码 var
var wini = window.open('','');
var sta='';
var jax = new XMLHttpRequest();
jax.onreadystatechange = function() {
sta = sta + jax.readyState + ', '
wini.document.write(sta+'<br>');
}
jax.open("POST","http://sitename.com/subscript/?save=save&tstamp="+Math.random());
jax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//jax.setRequestHeader("Connection: close");
jax.send("somedata=" + encodeURIComponent(window.somedata));
使用连接关闭。不同的结果。除readystate 1外,没有其他人被解雇
因此,readystates 1和4运行良好,但不是2和3。最需要的是3
代码运行的实际情况是:
1,在弹出窗口中打印,然后在就绪状态为4时经过8到9秒
1,2
1,2,3
1,2,3,4
以上三行是一次性打印的。因此,我假设只有通过readystate 4,我才能从服务器获得所有响应,而不是在readystate为3时
我已经在其他来源相同的web应用程序中使用了readystate 3,它已经工作并且仍然工作
对于这个xhr,我不知道我错过了什么
如何在这里使用readystate 3?最后我发现只有在chrome和safari中它才起作用,因为chrome使用的是safari webkit,可能是webkit不想像其他浏览器那样工作 添加了一个内容类型标题,它按预期工作 另一个用户也有类似的问题,我一直在试验,并找到了以下解决方案 因为我的答案解决了这两个问题,所以我将我在其他问题中给出的答案联系起来,而不是在这里重复 这是我的答案