ajax 和 jsonp

来源:互联网 发布:jre 7u21 windows x32 编辑:程序博客网 时间:2024/06/08 09:16
ajax和jsonp的区别:
相同点:都是请求一个url
不同点:ajax的核心是通过xmlHttpRequest获取内容

jsonp的核心则是动态添加<script>标签来调用服务器 提供的js脚本。

JSONP的优点是:它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制;它的兼容性更好,在更加古老的浏览器中都 可以运行,不需要XMLHttpRequest或ActiveX的支持;并且在请求完毕后可以通过调用callback的方式回传结果。


JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。



ajax执行流程?
1. 创建XMLHttpRequest对象,也就是创建一个异步调用对象
2. 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息
3. 设置响应HTTP请求状态变化的函数
4. 发送HTTP请求
5. 获取异步调用返回的数据
6. 使用JavaScript和DOM实现局部刷新

$.ajax使用代码:

$.ajax({      url: 'Server.aspx',      type: 'POST',      data: { id: idValue },      //调小超时时间会引起异常      timeout: 3000,      //请求成功后触发      success: function (data) { show.append('success invoke!' + data+'<br/>'); },      //请求失败遇到异常触发      error: function (xhr, errorInfo, ex) { show.append('error invoke!errorInfo:' + errorInfo+'<br/>'); },      //完成请求后触发。即在success或error触发后触发      complete: function (xhr, status) { show.append('complete invoke! status:' + status+'<br/>'); },      //发送请求前触发      beforeSend: function (xhr) {      //可以设置自定义标头      xhr.setRequestHeader('Content-Type', 'application/xml;charset=utf-8');      show.append('beforeSend invoke!' +'<br/>');      },      //是否使用异步发送      async: true    })


原创粉丝点击