ajax://(原生js实现Ajax)实例1:

//Ajax封装函数

function Ajax(type, url, data, success, failed){

// 创建ajax对象

var xhr = null;

if(window.XMLHttpRequest){//非IE浏览器

xhr = new XMLHttpRequest();

} else if {//IE浏览器

xhr = new ActiveXObject('Microsoft.XMLHTTP')

}else{

alert("该浏览器不支持Ajax!");

}

// 用于清除缓存

var random = Math.random();

if(typeof data == 'object'){

var str = '';

for(var key in data){

str += key+'='+data[key]+'&';

}

data = str.replace(/&$/, '');

}

if(type.toUpperCase() == 'GET'){

if(data){

xhr.open('GET', url + '?' + data, true);

} else {

xhr.open('GET', url + '?t=' + random, true);

}

xhr.send();

} else if(type.toUpperCase() == 'POST'){

xhr.open('POST', url, true);

// 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhr.send(data);

}

// 处理返回数据

xhr.onreadystatechange = function(){

if(xhr.readyState == 4){

/*

** Http状态码

** 1xx :信息展示

** 2xx :成功

** 3xx :重定向

** 4xx : 客户端错误

** 5xx :服务器端错误

*/

if(xhr.status == 200){

success(xhr.responseText);

} else {

if(failed){

failed(xhr.status);

}

}

}

}

}

// 测试调用

var sendData = {name:'asher',sex:'male'};

Ajax('get', 'data/data.html', sendData, function(data){

console.log(data);

}, function(error){

console.log(error);

});

jsonp:$(function(){

/*

//简写形式,效果相同

$.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",

function(data){

$("#showcontent").text("Result:"+data.result)

});

*/

$.ajax({

type : "post",

async:false, // 使用同步操作

url : "http://10.64.22.11/service/promotion/intention/intentionResult?token=5f25d0b83d774abd941aa5309bf081f7&userid=4221",

dataType : "jsonp",//数据类型为jsonp

jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数

success : function(data){

$("#showcontent").text("Result:"+data.result)

},

error:function(){

alert('fail');

}

});

});

封装ajax函数支持jsonp,ajax和jsonp复习相关推荐

  1. ajax函数返回值,ajax:怎么获得onreadystatechange调用的函数的返回值?

    异步的ajax实际上使用了单独的进程,因此无法获取到这个返回值,而且,在调用ajax()方法时你根本无法知道它什么时候会执行完毕. 因此对于异步的ajax来说,你无法主动的获取其返回值,只能提供回调方 ...

  2. ajax不支持post,AJAX不能正确发送POST变量

    你sendMessage功能是不完全正确 - 看看这看看它是否有帮助. 在最初检查的receiveReq状态不参照实例化XMLHttpRequest对象sendReq功能 - 也,请求绝不会因为ope ...

  3. jquery定义ajax函数吗,jQuery AJAX自定义函数和自定义回调?

    小编典典 编辑: 最近对此表示赞同,我不得不说我不再这样做.$.ajax返回a,promise因此您可以直接使用promise以更一致和更可靠的方式执行我在这里所做的几乎所有工作. function ...

  4. 不同浏览器 ajax,完整的 AJAX 写法(支持多浏览器)

    代码如下: var xmlhttp; function Submit() { //1.创建 XMLHttpRequest 对象 if (window.XMLHttpRequest) { //IE7,I ...

  5. ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

    AJAX简介: ajax背景: 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API,最早出现在谷歌 ...

  6. Ajax跨域提交JSON和JSONP

    可以直接使用$.getJSON()方法实现跨域请求,参数中必须加上callback,如: var jsonpUrl = 'http://www.test.com/index.php?c=Api_Ord ...

  7. jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

    jQuery中使用ajax: 在jQuery中使用ajax首先需要引入jQuery包,其引入方式可以采用网络资源,也可以下载包到项目文件中,这里推荐下载包到文件中:市面上有多个版本的jQuery库,这 ...

  8. Django 【第十九篇】JS实现的ajax、同源策略和前端JSONP解决跨域问题

    一.回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点:AJAX使用Javascript技术向服务器发送异步请求: AJAX无须刷新整个页面: 因为服务器响应内容不再是整个页面,而是页面 ...

  9. Ajax之跨域访问与JSONP

    前言 同源策略的限制,使得ajax无法发出跨域请求.在许多情况下,我们需要让ajax支持跨域.以下是其中一种解决方案(JSONP).JSONP解决了跨域数据访问的问题. 在html中,具有src属性的 ...

  10. ajax跨域请求Jsonp实现,使用jsonp实现ajax跨域请求

    Jsonp(JSON with Padding)是资料格式 json 的一种"使用模式",可以让网页从别的网域获取资料. 由于同源策略,一般来说位于 server1.example ...

最新文章

  1. 我的Python分析成长之路8
  2. 抱歉,我觉得有些人做副业并不靠谱
  3. 记录android老项目studio升级3.1+后重新配置gradle踩过的坑
  4. xhtmlrenderer 将html转换成pdf,完美css,带图片,手动分页,解决内容断开的问题
  5. html文字字号不改变,如何在不改变div大小的情况下更改HTML / css中的字体大小?...
  6. wxWidgets:wxStdOutputStream类用法
  7. 在centos8 stream启用 Extra Packages
  8. Python 程序报错崩溃后,如何倒回到崩溃的位置?
  9. C语言hello work的编译过程分解
  10. SHELL编程传递参数方法详解$# $* $0 $1 $2 $...
  11. 自己整理实现的python小工具
  12. BZOJ2038:[2009国家集训队]小Z的袜子——题解
  13. sql中常见sqlcode原因分析
  14. 马云留给阿里的财富:4个应用场景落地+90个区块链专利
  15. Vue项目上传图片后在ie浏览器卡死
  16. 什么是业务模式、商业模式、经营模式、盈利模式和发展模式?
  17. 2013年5月上海乌镇游
  18. MapX学习基本教程
  19. 【CAD算法】【计算机图形学】Bezier贝塞尔曲线生成程序(python/numpy实现)[1]
  20. 使用DirectPlay进行网络互联(4)

热门文章

  1. 图像处理_描述下SIFT特征?(清晰易懂)
  2. opencv摄像头拍摄视频并保存方法
  3. fixed不以body定位,相对于父级容器定位问题
  4. windows浏览器访问虚拟机开的rabbitmq服务,无法访问
  5. https与http的区别
  6. ●POJ 1228 Grandpas Estate
  7. win下使用VM虚拟机安装Linux系统
  8. (void __user *)arg 中__user的作用
  9. 实现网页布局的自适应 利用@media screen
  10. 使用Eclipse远程调试