Ajax的属性

1、属性列表

url:     (默认: 当前页地址) 发送请求的地址。

type:  (默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

timeout:  设置请求超时时间(毫秒)。此设置将覆盖全局设置。

async:   (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。 

beforeSend: 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。

               function (XMLHttpRequest) {
                  this; // the options for this ajax request
               }

cache: (默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。
complete:
请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。
               function (XMLHttpRequest, textStatus) {
                  this; // the options for this ajax request
               }

contentType: (默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合。
data:
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。
dataType:

            预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:

           "xml": 返回 XML 文档,可用 jquery 处理。

           "html": 返回纯文本 HTML 信息;包含 script 元素。

            "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。

            "json": 返回 JSON 数据 。

            "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

 processData: (默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

  error:  (默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。

function (XMLHttpRequest, textStatus, errorThrown) {
      // 通常情况下textStatus和errorThown只有其中一个有值 
      this; // the options for this ajax request
}

success:请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态

        function (data, textStatus) {

            // data could be xmlDoc, jsonObj, html, text, etc...
            this; // the options for this ajax request
        }

 

 注意:   

        1、success : 当请求成功时调用的函数。这个函数会得到一个参数:从服务器返回的数据。当请求成功时调用函数,即status==200。
        2、complete :当请求完成时调用的函数。这个函数会得到两个参数:XMLHttpRequest对象和一个描述请求成功的类型的字符串。当请求完成时调用函数,即status==404、403、302...。

        3、 data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。

        4、$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用    jquery.form.js   的$.ajaxSubmit

 

2、实例

      1、$.ajax的一般格式

$.ajax({
      type: "post",
      url: url,
      dataType:'html',
      success: function(data) { },
      complete: function(XMLHttpRequest, textStatus) { },
      error: function(){}
});

     2、文件上传,下文使用form的id进行提交数据,或者使用$.ajaxSubmit提交。

     其中关键要素

     a、contentType:(默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数情况。如果你明确地传递了一个content-type给 $.ajax(),那么他必定会发送给服务器(即使没有数据要发送)

    b、 processData:(默认: true) 默认情况下,都会处理转化成一个查询字符串,以配合默认内容类型。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

    c、FormData: 比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件。

var uploading = true;
if(uploading){
  $.ajax({
        url: ctx + "/xxx/upload",
        type: 'POST',
        cache: false,
        data: new FormData($('#infoLogoForm')[0]),
        processData: false,
        contentType: false,
        dataType:"json",
        beforeSend: function(){
            uploading = false;
        },
        success : function(data) {
            uploading = true;
        }
    });
}

 

3、引用资料:

   https://www.cnblogs.com/jpfss/p/9479595.html

   https://www.cnblogs.com/henuyuxiang/p/6656001.html

   



 

posted @ 2019-03-27 09:36  hcha0  阅读(3071)  评论(0编辑  收藏  举报