var request;
if(window.XMLHttpRequest){
request=new XMLHttpRequest();//IE7+,Firefox,Chrome,Opera,Safari..
} else {
request =new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5
}
HTTP:
http 是计算机通过网络进行通信的规则,是一种无状态的协议(不建立持久连接)
发送请求:
open(method,url,async);method:请求类型,async:是否异步,默认 是true。
send(string);发送请求到服务器
eg:
request.open("GET","get.php",true);
request.send();
request.open("POST","post.php",true);
request.send();
request.open("POST","create.php",true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send("name=王二狗&sex=男");
获取响应:
通过监听这个readyState属性变化,来知道服务器是否响应完成:
request.onreadystatechange=function(){
if(request.readyState ===4 && request.status ===200){
//做一些事情 request.responseText
}
}
跨域
JavaScript 出于安全方面的考虑,不允许跨域调用其他页面的对象。
跨域:简单理解就是因为JavaScript同源策略的限制,a.com域名下的js,无法操作b.com或是c.a.com域名下的对象。
处理跨域方法:
1:代理
2:jsonp
JSONP 可用于解决主流浏览器的跨域问题:
在www.aaa.com页面中:
<script>
function jsonp(json){
alert(json["name"]);
}
</script>
<script src="http://www.bbb.com/jsonp.js"></script>
在www.bbb.com页面中:
jsonp({'name':'111','age':20});
利用了script标签节点可跨域访问的特性,使b页面可以调用a页面中的方法。
ajax 支持jsonp:
$.ajax({
url:"http://127.0.0.1/..",
dataType:"jsonp",
jsonp:"callback",//值可以随意定,在后台根据该名字获取参数即可。
success:function(){
}
})
在服务端代码中:
因为JQuery会自动在请求的url上带上一个叫callback的参数,值是个随机数。因此在服务器端
获取参数callback的值,然后将要返回的内容用callback的值用小括号包裹起来,eg:
String callback1= request.getParameter("callback");
String result="{'name':'111','age':20}";
返回值:callback1+"("+result+")";
JSONP不支持post。
3:XHR2
HTML5 提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能。
IE10以下的版本不支持
在服务器端(eg:PHP)做一些小小的改造即可:
header("Access-Control-Allow-Origin:*");//可以访问的服务器的域名
header("Access-Control-Allow-Methods:POST,GET");//
相关推荐
ajax全接触(源代码)
这个压缩包介绍了net下几个主流ajax框架,附有案例.相信定会让你:"一看此包,少看五本书".
ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解
AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX
ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件
ajax ajax原理 ajax代码 ajax编程 ajax学习
ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效
本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...
ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件...
关于Ajax的常见面试题 1,Ajax和javascript的区别? javascript是一种在浏览器端执行的脚本语言,Ajax是一种创建交互式网页应用的开发技术 ,它是利用了一系列相关的技术其中就包括javascript。 Javascript是由...
ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子
Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码
Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包
ajax上传ajax上传ajax上传ajax上传ajax上传
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML)。 国 [使用ajax 构建应用程序] 使用ajax 构建应用程序 内翻译常为“阿贾克斯”和阿贾克斯足球队同音。Web应用的交互如Flickr,Backpack和...
php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax...
three ajax ajax ajaxthreethree ajax ajax ajax ajax ajax ajax three ajax ajax ajax
ajax 分页ajax 分页ajax 分页
使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤
学习的网上的一个ajax版注册程序,对界面进行了改变!是适合学习ajax的朋友的一个好的例子!