1.XMLHttpRequest status = 0 问题
XMLHttpRequest的说明:
http://www.w3.org/TR/XMLHttpRequest/
。
The status attribute must return the result of running these steps:
status的值一定会返回运行这些步骤的结果。
1、If the state is UNSENT or OPENED, return 0.(如果状态是UNSENT或者OPENED,返回0)
2、If the error flag is set, return 0.(如果错误标签被设置,返回0)
3、Return the HTTP status code.(返回HTTP状态码)
xmlhttp自己在模拟,因为根本就没通过服务器。本地直接打开而已。OPENED了,所以status为0。
浏览器跨域的返回头没有允许,所以浏览器阻止Access-Control-Allow-Origin这个属性。
解决方案:
在自己的服务器,访问自己域名内的url。
2.XMLHttpRequest.status == 200 && XMLHttpRequest.readyState ==4 但 返回值为 null
1.XMLHttpRequest status = 0 问题XMLHttpRequest的说明:http://www.w3.org/TR/XMLHttpRequest/ 。The status attribute must return the result of running these steps:status的值一定会返回运行这些步骤的结果。1、If the state is UN...
项目中用到
XMLHTTPRequest
进行数据交互,H5页面嵌入APP,突然一次预发布环境
测试
遇到
status
是0;印象中
status
是1,2,3,4,5开头的三位数。
经过百度得知,是接口请求中遇到了跨域
问题
,所以
status
是0了
此时readyState是4,
status
!=200
关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是属于浏览器”同源策略”中的一部分,其它的还有Cookie跨域iframe跨域,LocalStorage跨域等这里不做介绍),内容大概如下:
什么是ajax跨域
o表现(整理了一些遇到的
问题
以及
解决
方案)
如何
解决
ajax跨域
oJSONP方式
oCORS方式
o代理请求方式
如何分析ajax跨域
ohttp抓包的分析
o一些示例
var xmlhttp = new
XMLHttpRequest
(); // chrome
xmlhttp.open("GET", "http://localhost/index.php", true);
xmlhttp.send();
xmlhttp.onreadystatechan
1:请求已经建立,但是还没有发送,还没有调用 send() 。
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,没有全部完成。
4:响应已完成;您可以获取并使用服务器的响应了。
服务器状态码
1xx:表示临时响应并需要请求者继续执行操作的状态代码。初始化
100(继续):请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101(切换协议).
一,ajax状态值是指允许ajax所经历的几种状态,无论访问是否成功都将响应的步骤,可以理解为ajxa运行的步骤。
状态值是ajax对象与服务器交互时产生的,由ajax.readyState获得
0:未初始化,还没有调用send()
1:载入,已调用send(),正在发送请求
2:载入完成,send()方法执行完成,已经接收到全部响应内容
3:交互,正在解析响应内容
4:完成,响应内容解析完成,可以在客户端调用
二,ajax状态码是指无论ajax访问成功,由http协议根据所提交的信息,服务器
在使用
XMLHttpRequest
中有没有遇到过,第一次使用是好的,刷新一下就不行了,清空一下缓存再刷新又好了。
这是在使用
XMLHttpRequest
中常遇到的一个
问题
,在有的时候
XMLHttpRequest
请求的结果会缓存在同一个URL中,如果你请求之后的响应不同,就会产生一些莫名其妙的
问题
,当然也包括文章一开始那个呵呵。
解决
方法:知道了原理就简单了,也就是每次请求的URL不同,让它每次都去服务器端请求,而不是使用缓存。下面有两种自己常用的方法:
第一种方法是加时间戳var url = BaseURL + “&timeStamp=” + new Date().getTime();
Ajax请求一个目标地址为非本域(协议、域名、端口任意一个不同)的web资源,并根据响应获得外部应用数据。比如我们用Ajax访问城市天气预报、IP地址等公共服务接口时,就涉及跨域了。我们请求一个外部服务时,浏览器会基于安全
问题
拒绝授权访问。
而script、script、iframe标签的src属性就不存在跨域的
问题
,所以Ajax跨域就是利用这一点以及js对JSON的支持,外部服务只要给Ajax的请求响应一段JS代码或JSON数据,就能被Ajax获取到。
由于安全方面的原因, 客户端js使用
xmlhttprequest
只能用来向来源网站发送请求,比如在www.readlog.cn下去请求tes
在 聊聊 HTTP 协议的知识点中介绍了 HTTP 协议主要负责服务端和客户端数据传输操作,数据传输操作主要分为2 块:一是请求数据:客户端向服务端请求数据;二是响应数据:服务端向客户端响应数据,然而请求和响应都是通过请求报文和响应报文来完成的。今天我将带大家了解 HTTP 协议请求报文和响应报文组成部分有哪些。
HTTP 报文
在 【HTTP 图解】中将请求报文和响应报文主要分为 2 块:报文首部和报文主题,具体如下图所示:
为了方便理解我将 HTTP 请求报文和响应报文做了如下拆分:
今天在部署机构树,部署服务端的时候是很顺利的,通过验证程序,验证正常,在导入客户端程序一直是报
status
=0的错误。
情况是这样的,我们的机构树是采用异步请求的方式到服务端去请求,将父机构的机构代码、层级发送送到服务端,服务端将下级机构查询出来传递的客户端中。
机构树是一个独立的程序的,所以这样就涉及到一个跨域的
问题
,之前我们在北京中国...
Ajax中xmlHttp.
status
为什么不等于200
Ajax中,
XMLHttpRequest
对象的
status
属性一般用来返回服务器的HTTP状态码。
status
为200表示”成功”,
status
为404代表”页面未找到”。很多书上都是这样写的,一点也不错。
但是,有时候,特别是刚...