Ajax请求POST方法的封装

function post(url, options, callback){                                           //定义post函数

  if(XMLHttpRequest){

    var xhr=new XMLHttpRequest();

  }else{

    var xhr=new ActiveXObject("Microsoft.XMLHTTP");      //兼容ie

  }

  xhr .open(‘POST‘,url, true); //POST方法

  xhr .send(serialize(options));                                                  //查询参数需要作为send()的参数传入
}

function serialize(data){

  if(!data) return ‘‘;

  var pairs = [], value;

  for(name in data){                                                       //遍历对象属性

  if(!data.hasOwnProperty(name)) continue;               //过滤掉继承原型的属性和方法

    if(typeof data[name] === ‘function‘) continue;//过滤掉函数方法

    value = data[name].toString();                           //属性值转为字符串

    name = encodeURIComponent(name);            // 可把属性名称字符串作为URI 组件进行编码。返回值URIstring 的副本,其中某些字符将被十六进制的转义序列进行替换。

    value = encodeURIComponent(value);             //属性值进行URI编码。

    pairs.push(name + ‘=‘ + value);                        //属性名和值放入数组

  }

  return pairs.join(‘&‘); //将数组中的元素用&分隔开返回成字符串形式

}

post(‘/addUser‘, {name: ‘jerry‘, age: 1}, function(data) {

  console.log(data);

  // 处理返回数据

});

时间: 2024-10-06 21:40:06

Ajax请求POST方法的封装的相关文章

Ajax请求GET方法的封装

function get(url, options, callback){                                        //定义get函数 if(XMLHttpRequest){ var xhr=new XMLHttpRequest(); }else{ var xhr=new ActiveXObject("Microsoft.XMLHTTP"); //兼容ie } xhr .onreadystatechange = function(callback)

SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据

SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没有任何问题,也不报错.只是在地址栏直接输入ajax请求的url会报404. The resource identified by this request is only capable of generating responses with characteristics not accepta

AJAX请求 $.post方法的使用

使用jQuery的$.post方法可以以POST形式向服务器发起AJAX请求.$.post方法是jQuery的实用工具方法. $.post( url, [parameter], [callback], [type] ) 参数 注释 url(String) (字符串)服务器端资源地址. data(Map) (对象)需要传递到服务器端的参数. 参数形式为“键/值”. callback(Function)  (函数)在请求完成时被调用.该函数参数依次为响应体和状态. type(String)  (可选

解决:jQuery ajax 请求后台方法返回当前aspx源码问题

最近接了个私活,是在原来Asp.Net架构基础上添加一些功能,使用的jQuery是1.6.2版本,废话不多说,直接上代码 前台代码 $.ajax({ type: "POST", url: "MyPhotoList.aspx/btnSelectClick", contentType: "application/json", data: "{'photoName':'" + currentPhotoName + "','

封装基本的Ajax请求

一.说明 Ajax请求能够对页面进行局部的更新,而不用重新刷新当前浏览的整个页面,使用户体验更好. 实现Ajax请求的方法可以通过JavaScript代码向服务器发出 请求信息,客户端浏览器接收到返 回的Ajax数据,对页面进行 局部的刷新.在这个实现过程中,XMLHttpRequest对象是Ajax 的核心. 虽然jQuery已经将Ajax请求封装得很好了,我们可以非常方 便的使用jQuery库提供的方法($.get(), $.post(),$.ajax()等) 实现Ajax请求,但是本着学习

HTTP协议、Ajax请求

今天这篇文章呢,主要讲的就是关于HTTP协议.Ajax请求以及一些相关的小知识点.虽然内容不算多,可是是很重点的东西~ HTTP协议 1. http:超文本传输协议.简单.快速.灵活.无状态.无连接.2. url:统一资源定位符.     组成部分:协议名://主机名(主机ip):端口号/项目资源地址?传递参数的键值对#锚点     eg: http://192.168.5.151:8080/js/index.php?name=zhangsan#top     ① ip地址在同一网段是唯一的.如

ajax请求后弹开新页面被浏览器拦截

window.open()我想应该很多人都不陌生吧,它可以实现除用a标签以外来实现打开新窗口! 最近开发项目用到时,却遇到了麻烦,本来好好的弹出窗口,结果被浏览器无情的给拦截了! 代码如下: $.getJSON(URL,data,function(data,state){ if(state=='success'){ window.open('http://www.cnblogs.com/garfieldzhong/'); }else{ alert('请求失败!'); } }) 这要手动允许弹出窗

AngularJs中POST和GET方式的ajax请求

angular中ajax请求的方法说明: /* * _http:angularJs中的$http对象 * _url:ajax请求的URL * _method:请求方式:POST或GET * _params:GET方式请求时传递的参数 * _data:POST方式请求时传递的参数 * _responseType:在请求中设置XMLHttpRequestResponseType属性,""(字符串,默认), * "arraybuffer"(ArrayBuffer);&qu

多个异步ajax请求指定顺序执行

1.比如2个ajax请求,把第二个ajax请求放在第一个ajax请求success方法里面. 2.ajax请求时添加 async: false,//使用同步的方式,true为异步方式.结果是只有等服务器返回信息以后才会继续执行后面的代码.默认为true. 3. ajax6 = $.ajax( { url: "/Home2/SelectyjLoginuser", dataType: "json", type: "post", success: fu