博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)
阅读量:6894 次
发布时间:2019-06-27

本文共 1333 字,大约阅读时间需要 4 分钟。

1.跨域指的是什么?
 
2.Comet与Ajax
 
3.XMLHttpRequest
除了GET与POST之外,XMLHttpRequest规范也允许第一个参数为
DELETE,HEAD,OPTIONS,PUT。
如果有请求头的话,需要设置它。
如:POST请求需要“Content-Type”头指定请求主题的MIME类型。
request.setRequestHeader("Content-Type","text/plain");
 
 
POST发送:
4.为了在响应准备就绪得到通知,必须监听XMLHttpRequest对象上的readystatechange事件。
readyState是一个整数,它指定了HTTP请求的状态。
 
 
 
下面是一个异步响应。
 
 
 
下面是一个同步响应:
 
 
 
5.<script>元素可以发起跨域请求。而XMLHttpRequest API不可以。
我们可以通过检查头文件类型来判断响应的数据类型。
var type=request.getResponseHeader("Content-Type");if(type.indexOf("xml")!==-1 && request.responseXML){    callback(request.responseXML);    //Document对象响应}else if(type==="application/json"){     callback(JSON.parse(request.responseText));    //JSON响应}

 

6.multipart/form-data
当HTML表单同事包含文件上传元素和其他元素时,浏览器不能使用普通的表单编码,
必须使用“multipart/form-data”的特殊Content-Type来用POST方法提交表单。
 
 
7.文件上传
js:
window.οnlοad=function(){var a=document.getElementById("dd");a.addEventListener("change",function(){alert(this.files)   //返回一个FileList    },false)}

 
 
 
8.HTTP进度事件
HTTP请求超时,触发
timeout事件
HTTP请求中止,触发
abort事件
HTTP太多重定向的网络错误会阻止请求完成,触发
error事件
 
与progress事件相关的其他三个属性:
loaded:目前传输的字节数值
total:头传输的数据的整体长度
lengthCopmputable:如果知道内容长度,为true
例子:
request.οnprοgress=function(e){    if(e.lengthCopmputable){        progress.innerHTML=Math.round(100*e.loaded/e.total)+"%完毕!";    }}
 
9.CORS(跨域资源共享)
 
10.使用EventSource创建简单聊天客户端
 
 转载:http://www.cnblogs.com/zqzjs/p/4883955.html
你可能感兴趣的文章
Elixir ABC 1
查看>>
ZeroSpeech
查看>>
Fiddler 调试手机应用
查看>>
常用的正则表达式
查看>>
Jstl 中<c:if test="${value=='0'}"> 不能做判断??
查看>>
python matplotlib及sklearn安装
查看>>
困惑2017?
查看>>
KOTree
查看>>
BlockAlertsAnd-ActionSheets
查看>>
开源 java CMS - FreeCMS2.5 标签formTable自定义表单
查看>>
FreeCMS视频教程 将FreeCMS导入myeclipse
查看>>
Android 8.0 SystemUI(一):图文并茂的介绍 :D
查看>>
1wifi 简介(框架)
查看>>
internet && intranet
查看>>
go get报错 error: RPC failed; result=56, HTTP code =
查看>>
串行(Sequential)、并发(Concurrent)、并行(parallel)与分布式
查看>>
JAVA NIO学习笔记之Channel(基础篇)
查看>>
Xcode升级到6.4之后插件无法使用,重新安装最新也无法使用的解决办法
查看>>
秒懂科技新概念
查看>>
eclipse启动tomcat无法访问
查看>>