apakah fungsi ajax

藏色散人
藏色散人asal
2021-12-17 11:24:352609semak imbas

Fungsi ajax merujuk kepada fungsi jQuery.ajax(), yang digunakan untuk memuatkan data jauh melalui permintaan HTTP latar belakang Ia adalah pelaksanaan teknologi AJAX yang dirangkumkan oleh jQuery, kita boleh mendapatkan data jauh tanpa memuat semula halaman semasa pada pelayan.

apakah fungsi ajax

Persekitaran pengendalian artikel ini: sistem Windows 7, versi jquery 3.2.1, komputer Dell G3.

Apakah fungsi ajax?

jQuery.ajax() fungsi penerangan terperinci

jQuery.ajax() fungsi digunakan untuk memuatkan data jauh melalui permintaan HTTP latar belakang. Fungsi

jQuery.ajax() ialah pelaksanaan teknologi AJAX yang dikapsulkan oleh jQuery Melalui fungsi ini, kita boleh mendapatkan data pada pelayan jauh tanpa menyegarkan halaman semasa. Fungsi

jQuery.ajax() ialah pelaksanaan AJAX yang mendasari jQuery. jQuery.get(), jQuery.post(), load(), jQuery.getJSON(), jQuery.getScript() dan fungsi lain adalah semua bentuk dipermudahkan bagi fungsi ini (mereka semua memanggil fungsi ini, tetapi tetapan parameter adalah berbeza atau telah ditinggalkan).

Fungsi ini tergolong dalam objek jQuery global (juga boleh difahami sebagai fungsi statik).

Parameter

Sila cari parameter yang sepadan mengikut nama parameter yang ditakrifkan dalam bahagian sintaks sebelumnya.

Parameter Penerangan
url Rentetan permintaan URL jenis rentetan.
参数 描述
url String类型URL请求字符串。
settings 可选/Object类型一个Object对象,其中的每个属性用来指定发送请求所需的额外参数设置。
tetapan Pilihan/Jenis objek Objek Objek, setiap atributnya digunakan untuk menentukan Set parameter tambahan yang diperlukan untuk menghantar permintaan.

Parameter settings ialah objek, jQuery.ajax() boleh mengecam sifat objek berikut (semuanya pilihan):

menerima --- ObjekJenis

Nilai lalai: bergantung pada atribut dataType. Pengepala permintaan jenis kandungan yang dihantar oleh

digunakan untuk memberitahu pelayan jenis respons yang boleh diterima oleh penyemak imbas daripada pelayan.

async --- Jenis Boolean

Nilai lalai: true.

Menunjukkan sama ada ia permintaan tak segerak. Permintaan segerak mengunci penyemak imbas sehingga data jauh diperoleh dan tiada operasi lain boleh dilakukan.

beforeSend---Jenis fungsi

Nyatakan perkara yang perlu dilaksanakan sebelum permintaan dihantar fungsi panggil balik. Fungsi ini juga mempunyai dua parameter: satu ialah objek jqXHR dan satu lagi ialah objek settings semasa. Ini ialah acara Ajax Jika fungsi mengembalikan false, permintaan ajax ini akan dibatalkan.

cache---Jenis Boolean

Nilai lalai: true(Apabila dataType ialah 'skrip' atau 'jsonp', lalainya ialah false).

Menunjukkan sama ada untuk cache permintaan URL. Jika ditetapkan kepada false ia akan memaksa penyemak imbas untuk bukan cache permintaan URL semasa. Parameter ini hanya sah untuk permintaan HEAD dan GET (permintaan POST sendiri tidak akan dicache).

lengkap---Jenis Fungsi/Array

Permintaan yang ditentukanLengkap Fungsi panggil balik yang perlu dilaksanakan selepas (tanpa mengira kejayaan atau kegagalan). Fungsi ini juga mempunyai dua parameter: satu ialah objek jqXHR dan satu lagi ialah rentetan yang mewakili status permintaan ('berjaya', 'tidak diubahsuai', 'ralat', 'tamat masa', 'batalkan' atau 'parsererror') . Ini ialah acara Ajax.

Bermula dari jQuery 1.5, nilai atribut ini boleh menjadi berbilang fungsi dalam bentuk array, dan setiap fungsi akan dilaksanakan dengan panggilan balik.

kandungan---Jenis objek1.5 Ditambah

Objek yang dipasangkan dengan "{string:regex}" yang menentukan cara jQuery akan menghuraikan respons, berdasarkan jenis kandungannya.

contentType---Jenis rentetan

Nilai lalai: 'application/x- www-form-urlencoded; charset=UTF-8'.

Menghantar data ke pelayan menggunakan jenis pengekodan kandungan yang ditentukan. Spesifikasi XMLHttpRequest W3C menetapkan bahawa set aksara sentiasa UTF-8 Jika anda menukarnya kepada set aksara lain, anda tidak boleh memaksa penyemak imbas menukar pengekodan aksara.

konteks---Jenis objek

digunakan untuk menetapkan fungsi panggil balik berkaitan Ajax Objek konteks (iaitu, penunjuk this dalam fungsi).

penukar --- Jenis objek1.5 Ditambah

Nilai lalai: {'* text': window.String, 'text html': true, 'text json': jQuery.parseJSON, 'text <span id="9_nwp">xml': jQuery.parseXML} <code>{'* text': window.String, 'text html': true, 'text json': jQuery.parseJSON, 'text <span id="9_nwp">xml': jQuery.parseXML}</span>.

Penukar jenis data. Nilai setiap penukar ialah fungsi yang mengembalikan nilai tindak balas yang ditukar.

crossDomain---Jenis Boolean1.5 Ditambah

Nilai lalai: false untuk permintaan domain yang sama dan true untuk permintaan merentas domain.

Menunjukkan sama ada ia adalah permintaan merentas domain. Tetapkan kepada benar jika anda ingin memaksa permintaan merentas domain dalam domain yang sama (seperti dalam borang JSONP). Ini membenarkan ubah hala sisi pelayan ke domain lain, contohnya.

data---Sebarang jenis data

dihantar ke pelayan akan dimajukan secara automatik ialah daripada jenis rentetan. Jika ia adalah permintaan GET, ia akan dilampirkan pada URL.

dataFilter---Jenis fungsi

Menentukan panggil balik yang mengendalikan data mentah daripada fungsi tindak balas. Fungsi ini juga mempunyai dua parameter: satu ialah rentetan yang mewakili data asal respons dan satu lagi ialah rentetan atribut <span id="8_nwp">dataType<code><span id="8_nwp">dataType</span>.

dataType---Jenis rentetan

Nilai lalai: tekaan pintar jQuery, teka Julat (xml, json, skrip atau html)

menentukan jenis data yang dikembalikan. Nilai atribut boleh:

  • 'xml': Mengembalikan dokumen XML yang boleh diproses menggunakan jQuery.
  • 'html': Mengembalikan rentetan HTML.
  • 'skrip': Mengembalikan kod JavaScript. Keputusan tidak dicache secara automatik. Melainkan parameter cache ditetapkan. Nota: Apabila membuat permintaan jauh (bukan di bawah domain yang sama), semua permintaan POST akan ditukar kepada permintaan GET. (Kerana teg skrip DOM akan digunakan untuk memuatkan)
  • 'json': Mengembalikan data JSON. Data JSON akan dihuraikan menggunakan sintaks ketat (nama atribut mesti disebut dua kali dan semua rentetan mesti disebut dua kali), dan ralat akan dilemparkan jika penghuraian gagal. Bermula dengan jQuery 1.9, respons dengan kandungan kosong akan kembali null atau {}.
  • 'jsonp': format JSONP. Apabila memanggil fungsi menggunakan format JSONP, seperti "url?callback=?", jQuery akan menggantikan fungsi kedua secara automatik dengan nama fungsi yang betul untuk melaksanakan fungsi panggil balik.
  • 'teks': Mengembalikan rentetan teks biasa.

ralat---Jenis Fungsi/Array

Tentukan fungsi panggil balik untuk dilaksanakan apabila permintaan gagal . Fungsi ini mempunyai 3 parameter: objek jqXHR, rentetan status permintaan (null, 'tamat masa', 'ralat', 'batalkan' dan 'parsererror'), rentetan mesej ralat (bahagian keterangan teks daripada status respons, seperti 'Tidak Ditemui' ' atau 'Ralat Pelayan Dalaman'). Ini ialah acara Ajax. Skrip merentas domain dan permintaan JSONP merentas domain tidak akan memanggil fungsi ini.

Bermula dari jQuery 1.5, nilai atribut ini boleh menjadi berbilang fungsi dalam bentuk tatasusunan , setiap fungsi akan dilaksanakan dengan panggilan balik.

global---Jenis Boolean

Nilai lalai: true.

Menunjukkan sama ada untuk mencetuskan acara Ajax global. Menetapkan nilai ini kepada false akan menghalang pengendali acara global seperti ajaxStart() dan ajaxStop() daripada dicetuskan. Ia boleh digunakan untuk mengawal pelbagai acara Ajax.

pengepala---Jenis objek1.5 Ditambah

Lalai: {}.

Menentukan maklumat pengepala permintaan tambahan dalam bentuk objek. Pengepala permintaan X-Requested-With: XMLHttpRequest akan sentiasa ditambah, tetapi anda juga boleh mengubah suai nilai XMLHttpRequest lalai di sini. Nilai dalam headers boleh mengatasi set pengepala permintaan dalam fungsi panggil balik beforeSend (bermaksud sebelumHantar dipanggil dahulu).

$.ajax({
    url: "my.php" ,
    headers: {        "Referer": "http://www.365mini.com" // 有些浏览器不允许修改该请求头
        ,"User-Agent": "newLine" // 有些浏览器不允许修改该请求头
        ,"X-Power": "newLine"
        ,"Accept-Language": "en-US"
    }
});

ifModified---Jenis Boolean

Nilai lalai: false.

Membenarkan permintaan semasa untuk mendapatkan data baharu hanya apabila data pelayan berubah (jika tidak berubah, penyemak imbas mendapat data daripada cache). Ia menggunakan maklumat pengepala HTTP Last-Modified untuk menentukan. Bermula dengan jQuery 1.4, ia juga menyemak 'etag' yang ditentukan pelayan untuk menentukan sama ada data telah diubah suai.

adalah Tempatan---Jenis Boolean1.5.1 Ditambah

Lalai: Bergantung pada protokol lokasi semasa.

允许将当前环境视作"本地",(例如文件系统),即使默认情况下jQuery不会如此识别它。目前,以下协议将被视作本地:file*-extensionwidget

jsonp---String类型

重写JSONP请求的回调函数名称。该值用于替代"url?callback=?"中的"callback"部分。

jsonpCallback---String/Function类型

为JSONP请求指定一个回调函数名。这个值将用来取代jQuery自动生成的随机函数名。

从jQuery 1.5开始,你也可以指定一个函数来返回所需的函数名称。

mimeType---String类型1.5.1 新增

一个mime类型用来覆盖XHR的mime类型。

password---String类型

用于响应HTTP访问认证请求的密码。

processData---Boolean类型

默认值:true

默认情况下,通过<span id="4_nwp">data</span>属性传递进来的数据,如果是一个对象(技术上讲,只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM树信息或其它不希望转换的信息,请设置为false

scriptCharset---String类型

设置该请求加载的脚本文件的字符集。只有当请求时dataType为"jsonp"或"script",并且type是"GET"才会用于强制修改charset。这相当于设置3f1c4e4b6b16bbbd69b2ee476dc4f83a标签的charset属性。通常只在当前页面和远程数据的内容编码不同时使用。

statusCode---Object类型1.5 新增

默认值: {}

一组数值的HTTP代码和函数构成的对象,当响应时调用了相应的代码。例如:

$.ajax({
    url: a_not_found_url ,    
    // 当响应对应的状态码时,执行对应的回调函数    
    statusCode: {        404: function() {
            alert( "找不到页面" );
        },        200: function(){
            alert("请求成功");
        }
    }
});

success---Function/Array类型

指定请求成功后执行的回调函数。该函数有3个参数:请求返回的数据、响应状态字符串、jqXHR对象。

从jQuery 1.5开始,该属性值可以是数组形式的多个函数,每个函数都将被回调执行。

timeout---Number类型

设置请求超时的毫秒值。

traditional---Boolean类型

如果你希望使用传统方式来序列化参数,将该属性设为true

type---String类型

默认值:"GET"。

请求类型,可以为'POST'或'GET'。注意:你也可以在此处使用诸如'PUT'、'DELETE'等其他请求类型,但它们不被所有浏览器支持。

url --- String类型

默认值:当前页面URL。

请求的目标URL。

username --- String类型

用于响应HTTP访问认证请求的用户名。

xhr --- Function类型

默认值:在IE下是ActiveXObject(如果可用),在其他浏览器中是XMLHttpRequest

一个用于创建并返回XMLHttpRequest对象的回调函数。你可以重写该属性以提供自己的XHR实现,或增强其功能。

xhrFieldsObject类型1.5.1 新增

一个具有多个"字段名称-字段值"对的对象,用于对本地XHR对象进行设置。一对「文件名-文件值」在本机设置XHR对象。例如,如果需要,你可以用它来为跨域请求设置XHR对象的withCredentials属性为true

$.ajax({
   url: a_cross_domain_url,   // 将XHR对象的withCredentials设为true   xhrFields: {
      withCredentials: true
   }
});

注意:
1、如果你的所有AJAX请求都需要设置settings中某些参数,你可以使用jQuery.ajaxSetup()函数进行全局设置,而无需在每次执行jQuery.ajax()时分别设置。
2、在jQuery 1.4(含)之前,选项参数completesucceserrorAjax事件的回调函数的第3个参数不是经过jQuery封装的jqXHR对象,而是原生的XMLHttpRequest对象。

返回值

jQuery.<span id="19_nwp">ajax()</span>函数的返回值为jqXHR类型,返回当前该请求的jqHXR对象(jQuery 1.4及以前版本返回的是原生的XMLHttpRequest对象)。

示例&说明

如果没有给jQuery.ajax()指定任何参数,则默认请求当前页面,并且不对返回数据进行处理。

jQuery.ajax()函数的settings对象中,常用的属性有:url、type、async、data、dataType、success、error、complete、beforeSend、timeout等。

请参考下面这段初始HTML代码:

<div id="content"></div>

以下是与jQuery.ajax()函数相关的jQuery示例代码,以演示jQuery.ajax()函数的具体用法:

(演示页面只有第一个ajax()函数,其他代码请自行复制到演示页面分别执行)

$.ajax({
     url: "jquery_ajax.php"
    , type: "POST"
    , data: "name=codeplayer&age=18"
    , success: function( data, textStatus, jqXHR ){
        // data 是返回的数据
        // textStatus 可能为"success"、"notmodified"等
        // jqXHR 是经过jQuery封装的XMLHttpRequest对象
        alert("返回的数据" + data);
    }
});


$.ajax({
     url: "jquery_ajax.php?page=1&id=3"
    , type: "POST"
    // jQuery会自动将对象数据转换为 "name=codeplayer&age=18&uid=1&uid=2&uid=3"
    , data: { name:"codeplayer", age:18, uid: [1, 2, 3] }
    // 请求成功时执行
    , success: function( data, textStatus, jqXHR ){
        alert("返回的数据" + data);
    }
    // 请求失败时执行
    , error: function(jqXHR, textStatus, errorMsg){
        // jqXHR 是经过jQuery封装的XMLHttpRequest对象
        // textStatus 可能为: null、"timeout"、"error"、"abort"或"parsererror"
        // errorMsg 可能为: "Not Found"、"Internal Server Error"等
        alert("请求失败:" + errorMsg);
    }
});


// 将url单独提取出来作为第一个参数(jQuery 1.5+才支持)
$.ajax("jquery_ajax.php?action=type&id=3", {
     dataType: "json" // 返回JSON格式的数据
    , success: function( data, textStatus, jqXHR ){
        // 假设返回的字符串数据为{ "name": "CodePlayer", age: 20 }
        // jQuery已帮我们将该JSON字符串转换为对应的JS对象,可以直接使用
        alert( data.name ); // CodePlayer
    }   
});


$.ajax( {
    // 注意这里有个参数callback=?
     url: "http://cross-domain/jquery_ajax.php?name=Jim&callback=?&age=21"
    , async: false // 同步请求,发送请求后浏览器将被锁定,只有等到该请求完成(无论成功或失败)后,用户才能操作,js代码才会继续执行
    , dataType: "jsonp" // 返回JSON格式的数据
    , success: function( data, textStatus, jqXHR ){
        // 假设返回的字符串数据为{ "site_name": "CodePlayer", "site_desc": "专注于编程开发技术分享" }
        // jQuery已帮我们将该JSON字符串转换为对应的JS对象,可以直接使用
        alert( data.site_desc ); // 专注于编程开发技术分享
    }   
});


$.ajax( {
    // 加载指定的js文件到当前文档中
     url: "http://code.jquery.com/jquery-1.8.3.min.js"
    , dataType: "script"
});

推荐学习:《ajax视频教程

Atas ialah kandungan terperinci apakah fungsi ajax. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn