作业专用前面面试题饥人谷技术博客

jQuery.ajax.jsonp

2018-10-28  本文已影响0人  饥人谷光仔

jQuery.ajax.jsonp


本文转载于饥人谷课件,转载请注明来源,谢谢!


jQuery.ajax( [settings ] )

先看个例子

$.ajax({
    url: 'xxx.php',
    method: 'GET',
    data: {
        name: 'Byron',
        age: 24,
        sex: 'Male'
    }
}).done(function(result){

    console.log(result);

}).fail(function(jqXHR, textStatus){

    consloe.log(textStatus);

}).always(function(){
    //dosomething
});

这样我们就发送了一个get请求

方法提供了几个常用的setting

了解了这些参数,使用jQuery处理ajax请求就简单了

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

除了这个方法,jQuery还提供了一些额外的方法

jQuery.get( [settings] ) / jQuery.post( [settings ] )

这两个方法专门用来处理get和post请求

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

dataType:从服务器返回的预期的数据类型。默认:智能猜测(xml, json, script, 或 html)

jQuery.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] )

使用一个HTTP GET请求从服务器加载JSON编码的数据,这是一个Ajax函数的缩写,这相当于:

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

.load( url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ] )

从服务器载入数据并且将返回的 HTML 代码并插入至匹配的元素中

$('#result').load('ajax/test.html')

.serialize() / serializeArray()

将用作提交的表单元素的值编译成字符串,方法没有参数,使用标准的 URL-encoded 符号上建立一个文本字符串. 它可以对一个代表一组表单元素的 jQuery 对象进行操作,比如input, textarea, 和 select等。

<form id="holder">
  <input type="text" name="a" value="1"/>
  <div>
    <input type="text" name="b" value="2" id="b" />
  </div>
  <input type="hidden" name="c" value="3" id="c" />
  <div>
    <input type="checkbox" name="f" value="8" checked="true"/>
    <input type="checkbox" name="f" value="9" checked="true"/>
  </div>
</form>

$("#holder").serialize(); //a=1&b=2&c=3&f=8&f=9
$("#holder").serializeArray();
/*
    [
      {name: 'a', value: '1'},
      {name: 'b', value: '2'},
      {name: 'c', value: '3'},
      {name: 'f', value: '8'},
      {name: 'f', value: '9'}
    ]
*/

serialize和serializeArray都是针对JQuery对象(选中的FORM元素)进行操作,只是返回值格式不同而已。这里特别要注意:这2个API只能操作form,如果将holder改成div,会发现不起作用

上一篇下一篇

猜你喜欢

热点阅读