美文网首页
jQuery与Ajax

jQuery与Ajax

作者: 学的会的前端 | 来源:发表于2019-07-25 13:47 被阅读0次

jQuery.ajax( [settings ] )

  • 比较老的jQuery的ajax写法
    $.ajax({
        url: '/hello',
        method: 'get',
        dataType: 'json',
        data: {
            a: 1,
            b: 2
        },
        success: function(ret){
            console.log(ret)
        },
        error: function(){
            console.log('error')
        }
    })
  • 另外一种比较新的写法
$.ajax({
        url: '/hello',
        method: 'get',
        dataType: 'json',
        data: {
            a: 1,
            b: 2
        }
    }).done(function(ret){
        console.log(ret)
    }).error(function(){
        console.log('error')
    })
  • ajax的简写
    $.get('hello',{}).done(function(){

    }).fail(function(){
        
    })
  • 方法提供了几个常用的setting
  1. async:默认设置下,所有请求均为异步请求(也就是说这是默认设置为 true )。如果需要发送同步请求,请将此选项设置为 false
  2. beforeSend:请求发送前的回调函数,用来修改请求发送前jqXHR对象,此功能用来设置自定义 HTTP 头信息,等等。该jqXHR和设置对象作为参数传递
  3. cache:如果设置为 false ,浏览器将不缓存此页面。注意: 设置cache为 false将在 HEAD和GET请求中正常工作。它的工作原理是在GET请求参数中附加"_={timestamp}"
  4. context:这个对象用于设置Ajax相关回调函数的上下文。 默认情况下,这个上下文是一个ajax请求使用的参数设置对象
  5. data:发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后面,POST请求作为表单数据
  6. headers:一个额外的{键:值}对映射到请求一起发送。此设置会在beforeSend 函数调用之前被设置 ;因此,请求头中的设置值,会被beforeSend 函数内的设置覆盖
  7. method:HTTP 请求方法 (比如:"POST", "GET ", "PUT",1.9之前使用“type”)

jQuery实现jsonp

在jquery中也有对jsonp的封装,不过jquery把其放到了ajax中,不明白为什么,毕竟这东西和ajax不太一样。

  • 主要设置:dataType: 'jsonp', jsonp:'callback'
function getBooks(){
    $.ajax({
        type:'get',
        url:'http://test.com/bookservice.php',
        dataType:'jsonp',
        jsonp:'callback',
        jsonpCallback:'displayBooks'
    });
}

jQuery.param(obj)

得到的是一个序列化后的对象。
创建一个数组,一个普通的对象,或一个jQuery对象的序列化表现形式,用于URL查询字符串或Ajax请求。如果传递一个JQuery对象,它应该包含输入元素(input,textarea)的名称/值属性。

var obj = {a:1,b:2}
$.param(obj) //‘a=1&b=2’ 

.serializa()

将用作提交的表单元素的值编译成字符串。这个方法不接受任何参数。

$('form').on('submit',function(e){
  e.preventDefault()
  console.log($(this).serialize())
 })
//当点击提交的时候,form表单中的k=value值就会

相关文章

网友评论

      本文标题:jQuery与Ajax

      本文链接:https://www.haomeiwen.com/subject/vsqhrctx.html