本文主要是介绍{readyState: 0, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeTyp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在进行ajax请求的时候报错如下:
{readyState: 0, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
在ajax的返回结果中,自己任何数据都没有获得,所以上网百度,仍然没有结果,对于这个错误,每个人的情况也不一样,所以我就开始仔细的分析自己的程序,同样的服务接口在别的ajax中,可以正常返回数据,而且自己本次的ajax请求,在服务器端,能正常的显示响应数据和状态。所以这个问题肯定是出在客户端,在客户端,自己的ajax唯一的不同就是,自己内嵌了一个ajax和服务器通信,所以我觉得问题肯定出在这里。
然后百度ajax嵌套的问题,果不然,在ajax进行嵌套的时候,由于异步的原因,里面的ajax将获取不到服务器的返回信息。现在知道自己的问题所在了就说说,解决问题的几种办法:
第一种
描述:如果条件许可,把两次请求都放在服务端处理掉一起发回来,这些就在客户端只有一次ajax了
优点:代码放在服务端,安全性比较,且服务端处理速度较快
缺点:可能请求的数据格式是json,这样在服务端处理JSON数据还需要对JSON进行反序列化,这样就比较麻烦
第二种
描述:是我第一次解决这个问题的时候用的比较蠢的办法,第一次请求的ajax,循环值PUSH到公共变量中去,然后用这个公共变量作为参数去请求第二个ajax
优点:节省开销
缺点:这样写的确有点蠢...除了蠢之外我再补充一点这样做第二次ajax只能是自己去请求自己服务器,如果是别人的服务不可能给你拆分参数
第三种
描述:使用async :false。ajax默认async是为ture的,当async: true 时,ajax请求是异步的。但是其中有个问题:ajax请求和其后面的操作是异步执行的,那么当页面还未执行完,就可能已经执行了 ajax请求后面的操作。当async:false时,ajax请求为同步,这时Ajax请求将整个浏览器锁死,直到请求结束
这篇关于{readyState: 0, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeTyp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!