We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Asynchronous JavaScript and XML(AJAX) 异步的 JavaScript 和 XML AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
XMLHttpRequest
var xhr = new XMLHttpRequest() var xhr = new ActiveXObject("Microsoft.XMLHTTP") //(IE5 和 IE6)使用 ActiveX 对象
open
xhr.open(method, url, async)
规定请求的类型、URL 以及是否异步处理请求。
GET
POST
send
send(string)
将请求发送到服务器。 string:仅用于 POST 请求
onreadystatechange
每当 readyState 改变时,就会触发 onreadystatechange 事件 readyState从 0 到 4 发生变化
readyState
open()
send()
status 成功状态码
status
失败状态码
function ajaxFunc (method, url, data, callback) { var xhr = null; if(window.XMLHttpRequest) { xhr = new XMLHttpRequest() }else{ xhr = new ActiveXObject('microsoft.XMLHttp') } method = method.toUpperCase();//转为大写字母方便判断 if(method === 'GET') { xhr.open('GET', url + '?' + data, true);//GET请求 传递数据是拼接在url后面的 xhr.send(); }else if(method === 'POST') { xhr.open('POST', url, true); xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');//POST请求还需设置请求头 xhr.send(data)//POST请求 传递数据是放在send里 } xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { callback(xhr.responseText) } } }
遵循浏览器的同源策略(协议、域名、端口一致),不能跨域
可以实现跨域 只能用 GET 请求,并且要求返回 JavaScript 页面中先准备好doJson()处理函数,然后给页面动态加一个 <script> 节点,相当于动态读取外域的JavaScript资源,最后就等着接收回调了。
JavaScript
<script>
var oScript = document.createElement('script'); //动态添加<script>节点 oScript.src = 'https://xxxx' + '&cb = doJson'; //其中cb参数则告诉服务器,我的本地回调函数叫做doJson,所以请把查询结果传入这个函数中进行调用。 document.body.appendChild(oScript); // 把script标签加入head,此时调用开始 function doJson(data) { //处理代码... }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
javascript系列之 AJAX、JSONP 篇
1.AJAX
含义
Asynchronous JavaScript and XML(AJAX)
异步的 JavaScript 和 XML
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
基本用法
1.创建
XMLHttpRequest
实例2.使用
open
方法,初始化请求参数规定请求的类型、URL 以及是否异步处理请求。
GET
或POST
3.使用
send
方法,发送请求将请求发送到服务器。
string:仅用于
POST
请求4.监听
onreadystatechange
,接收返回的数据每当
readyState
改变时,就会触发onreadystatechange
事件readyState
从 0 到 4 发生变化open()
方法open()
方法,但未调用send()
方法send()
方法,但未收到响应status
成功状态码
失败状态码
封装AJAX
GET、POST区别
安全限制
遵循浏览器的同源策略(协议、域名、端口一致),不能跨域
2.JSONP
可以实现跨域
只能用
GET
请求,并且要求返回JavaScript
页面中先准备好doJson()处理函数,然后给页面动态加一个
<script>
节点,相当于动态读取外域的JavaScript资源,最后就等着接收回调了。3.AJAX和JSONP异同
XMLHttpRequest
获取非本页内容,而jsonp的核心则是动态添加The text was updated successfully, but these errors were encountered: