jQuery 发送ajax请求
写在前面的话:
利用jQuery 的 ajax() 方法通过 HTTP 请求加载远程数据 是非常简便的,也是常用的功能。W3school网上的资料(里边有各个参数的介绍)
1.常用写法:
$.ajax({ url:'test.php', type:'POST', // 默认为GET data:{ name:'xy',
age:22 }, timeout:5000, // 超时时间 beforeSend:function(xhr){ console.log(xhr) console.log('发送前') }, success:function(result){ console.log(result) }, error:function(xhr,textStatus){ console.log('错误') console.log(xhr) console.log(textStatus) } })
2.如果资源是跨域的,那么请求数据使用jsonp格式的:
$.ajax({ url:"test2.php", type:"post", dataType:"jsonp", jsonp:"callback", data:{ page: 2 }, success:function (result) { console.log(result) }, error:function (error) { console.log(error) } });
3.关于向服务器传递数据的一些补充:
json字符串与json对象之间的转换:
JSON.parse() // json字符串转化为json对象 JSON.stringify() // json对象转化为json字符串 // 例子1: var s = {}; s.a = 'aaaa'; s.b = 'asdasd'; console.log(JSON.stringify(s)) // 字符串 {"a":"aaaa","b":"asdasd"} console.log(JSON.parse(JSON.stringify(s))) // 对象 Object {a: "aaaa", b: "asdasd"}
一般做法是:把页面的数据存在一个对象里面,然后将这个对象转换成json字符串,传给服务器
//例子2:前端向后端发送数据 在一般场景来说,get方法无需JSON.stringify,post方法需要。?? function testFun(data) { $.ajax({
url: "", type: "POST", dataType: "json", data: {data:JSON.stringify(data)}, success: function (data) { console.log(data); } }); } 在点击提交或者保存时候,运行 testFun 函数;
4.有些是需要在发送时设置请求头的,设置方法:在ajax方法里面加一个参数 headers: {你要设置的内容}
例:
headers:{
Accept:"application/json;"
}
以上。
附:
网上找来的原生写法(截的哪位大神的我不知道了),我本人目前还没使用过原生来写 ……
//原生写法 $('#send').click(function(){ //请求的5个阶段,对应readyState的值 //0: 未初始化,send方法未调用; //1: 正在发送请求,send方法已调用; //2: 请求发送完毕,send方法执行完毕; //3: 正在解析响应内容; //4: 响应内容解析完毕;var data = 'name=yang';
var xhr = new XMLHttpRequest(); //创建一个ajax对象
xhr.onreadystatechange = function(event){ //对ajax对象进行监听
if(xhr.readyState == 4){ //4表示解析完毕
if(xhr.status == 200){ //200为正常返回
console.log(xhr)
}
}
};
xhr.open('POST','url',true); //建立连接,参数一:发送方式,二:请求地址,三:是否异步,true为异步
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); //可有可无
xhr.send(data); //发送
});
asp.net webapi下json传值方式
The remote name could not be resolved: 'nuget.org'(未能解析此远程名称:’nuget.org’)
关于集成Paypal Express Checkout支付功能
Syntax error at line 16 while loading: expected ')', got keyword 'in' or(i.isArray(t)||(t in e?t=[t]:(t=i.came
如何在MVC3 razor视图下的ViewsStart文件中设置使用两套不同的Layout布局视图
knockout使用技巧:告知knockout忽略页面容器内特定部分的绑定
LINQ to Entities已知问题及注意事项
jQuery中.live()方法的使用方法
Uncaught TypeErroe: Uncaught TypeError: Cannot call method 'push' of undefined 和 Uncaught TypeError: undefined is not a function
- 最新文章
-
HTTP和HTTPS以及两者的区别
src与href的区别
Cookie、session和localStorage、以及sessionStorage之间的区别
浅析express以及express中间件
报文
<node>……express的中间件……//
Linux ubuntu安装
dockerRegistry搭建
持续集成(Continuous integration)
Dockercompose
- 热门文章
-
WP7 : FrameworkDispatcher.Update has not been called when recording audio(wp7 录音)
C# 判断指定日期是星期几
WindowsPhone7录音IsolatedStorage保存wav文件IsolatedStorage上传wav录音文件(完整版)
hdu1728 广搜
新浪微博 oauth2.0 redirect_uri_mismatch
socket实现Windows Phone 7即时聊天
Directx c++实现一个灵活的第三人称camera(角色跟随)
tomcat 连接sqlsever 存储过程com.microsoft.sqlserver.SQLServerException:索引1超出范围
socket 实现 Windows Phone 7 即时聊天(二)
Wp7: 调用摄像头拍照并上传图片(完整版)