码迷,mamicode.com
首页 > Web开发 > 详细

ajax

时间:2018-03-18 23:19:27      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:data-   style   status   指定   text   16px   异步   开发   jsonp   

Ajax跨域(AJAX的核心是XMLHttpRequest)
原生ajax的四个过程: 
实例化,open,send,onreadystatechange,然后是req,readyState和status。
 
为什么会发生ajax跨域(同时满足以下三个,可能跨域原因)
1.浏览器限制
2.跨域.端口不同/协议不同/ip不同
3.XHR(XMLHttpRequest)请求类型
 
解决方法:
1.代理
通过后台(ASP、PHP、JAVA、ASP.NET)获取其他域名下的内容,再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。
2.JSONP
只支持GET请求,返回数据格式必须是json数据
3.XHR2(XMLHttpRequest Level2)
(在服务器端响应接口添加2个响应头)
Access-Control-Allow-Origin: * //*代表任何域。也可以指定地址
Access-Control-Allow-Methods: POST,GET //支持的方法
这样在客户端使用常规的ajax即可
 
总结
代理实现最麻烦,但使用最广泛,任何支持AJAX的浏览器都可以使用这种方式。
JSONP相对简单,但只支持GET方式调用。
XHR2最简单,但只支持HTML5,如果你是移动端开发,可以选择使用XHR2。
 
 
技术分享图片
 
//Jquery
$.ajax({
type:"get",
url:url,
async:false, //async是异步 sync是同步
data:{},
dataType:"json",
succedd:function(msg){
},
error:function(){
}
});
 
 
 
 

ajax

标签:data-   style   status   指定   text   16px   异步   开发   jsonp   

原文地址:https://www.cnblogs.com/zwtqf/p/8598058.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!