jQuery AJAX - ajax() စနစ်

အကြောင်းကြောင်း

အယူအဆ သုံးစွဲလာမည့် အချက်အလက်များကို AJAX ဖြင့် သုံးစွဲပါ

jQuery 代码:

$(document).ready(function(){
  $("#b01").click(function(){
  htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
  $("#myDiv").html(htmlobj.responseText);
  });
});

HTML 代码:

Let AJAX change this text

亲自试一试

定义和用法

ajax() 方法通过 HTTP 请求加载远程数据。

该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。

最简单的情况下,$.ajax() 可以不带任何参数直接使用。

注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。

语法

jQuery.ajax([settings])
参数 描述
settings

可选。用于配置 Ajax 请求的键值对集合。

可以通过 $.ajaxSetup() 设置任何选项的默认值。

参数

options

အမျိုးအစား: Object

可选。AJAX 请求设置。所有选项都是可选的。

async

အမျိုးအစား: Boolean

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

သတိပြုပါ၊ ပြင်းပြည်းအားဖြင့် ကောက်ချက် အခမ်းအနား သည် ဘတ်သမိုင်း ကို ပိတ်ပင်နိုင်ပါ။ အသုံးပြုသူ အခြား အမှုကို ပြုလုပ်ရန် အခမ်းအနား အပြီးအပြတ် မပြန်စီးနိုင်ပါ

beforeSend(XHR)

အမျိုးအစား: Function

အခမ်းအနား ပေးသူ အား ပြင်ဆင်နိုင်သော အကူအညီ အပြုအမူ ဖြစ်၍၊ အသုံးပြုရမည့် အကူအညီ အပြုအမူ ဖြစ်၍ ကို အသုံးပြုနိုင်ပါ။ ကို အသုံးပြုရမည့် အကူအညီ အပြုအမူ ဖြစ်၍ ကို အသုံးပြုနိုင်ပါ

XMLHttpRequest အရာဝတ္တု သည် အသုံးပြုရမည့် အကိုယ်အချုပ် သည်

ဒါ သည် အေဂျင်စီ အခမ်းအနားတစ်ခုဖြစ်သည်။ အပြန် false အား သတ်မှတ်ပြီးနောက် အေဂျင်စီ အခမ်းအနားကို ဖျက်သိမ်းနိုင်ပါ

cache

အမျိုးအစား: Boolean

မျှော်လင့်ချက်: true,dataType အား script နှင့် jsonp အား မျှော်လင့်ချက် false အား သတ်မှတ်ထားသည်။ false အား သတ်မှတ်ပြီးနောက် အခြေခံ စာမူကို ကျယ်ပြီး မပြန်တင်စာမူကို မပြန်တင်ပေးသည်

jQuery 1.2 အသစ်အရေးသတ်ချက်များ

complete(XHR, TS)

အမျိုးအစား: Function

请求完成后回调函数 (请求成功或失败之后均调用)。

参数: XMLHttpRequest 对象和一个描述请求类型的字符串。

这是一个 Ajax 事件。

contentType

အမျိုးအစား: String

默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。

默认值适合大多数情况。如果你明确地传递了一个 content-type 给 $.ajax() 那么它必定会发送给服务器(即使没有数据要发送)。

context

အမျိုးအစား: Object

ထို အရာမှာ ဆိုင်းတိုက် က အိမ်တိုက် ကို ပြန်တင်သော အချက်အလက် အတွက် အပြန်လည် အားကစား ပုံစံ ကို အစိုးရသည်။ ထို့ကြောင့် အပြန်လည် အားကစား ပုံစံ အတွင်း အချက်အလက် အား အချက်အလက် ကို အစိုးရ အား ပြုလုပ်သည်။ အချက်အလက် အတွက် အစိုးရ မပြောဆို ဘဲ ဖြစ်လျှင် အချက်အလက် အား အစိုးရ အား ပြုလုပ်သည်။ ဥပမာ၊ အချက်အလက် အား အချက်အလက် အတွက် အစိုးရ အား ပြုလုပ် အား ပြုလုပ်သည်။

သို့ပင် ဖြစ်သည်:

$.ajax({ url: "test.html", context: document.body, success: function(){
        $(this).addClass("done");
      }});
data

အမျိုးအစား: String

ဆိုင်းတိုက် က အိမ်တိုက် ကို ပြန်တင်သော အချက်အလက် ကို ပြန်လည် ပြင်ဆင်သည်။ ကြည့် processData ရှိ အမှားများ ကို အမှား မပြောက် အားကစားသည်။ အရိုး/Value အမျိုးအစား ဖြစ်သည်။ အချက်အလက် အား အဖွဲ့ ဖြစ် ဘဲ ဖြစ်လျှင် ဆိုင်းတိုက် က အချက်အလက် အချက်အလက် အား အမျိုးအစား အတူ ပြင်ဆင်သည်။ ဥပမာ၊ {foo:["bar1", "bar2"]} အား '&foo=bar1&foo=bar2' အဖြစ် ပြင်ဆင်သည်။

dataFilter

အမျိုးအစား: Function

ဆိုင်းတိုက် က အိမ်တိုက် ကို ပြန်တင်သော အချက်အလက် ကို ပြင်ဆင်သည် အကျိုးသား ပုံစံ။ ပြင်ဆင် အချက်အလက် နှင့် အမျိုးအစား နှစ်ခု ပြုလုပ်သည်: data အား ဆိုင်းတိုက် က အိမ်တိုက် ကို ပြန်တင်သော အချက်အလက် ဖြစ်သည်၊ type အား ဆိုင်းတိုက် က .ajax() ကို အသုံးပြု ပြီး ပြောဆိုသော dataType အမျိုးအစား ဖြစ်သည်။ အကျိုးသား ပြင်ဆင် အား ဆိုင်းတိုက် က ပြင်ဆင်သည်။

dataType

အမျိုးအစား: String

တင်မြင်သည် ဆိုင်းတိုက် က ပြန်တင်သော ရှိပုံ အမျိုးအစား ကို ပြင်ဆင်သည်။ အမှား မပြောက်ဘဲ တင်မြင်သည် က အိမ်တိုက် HTTP ပုံမှန် အမျိုးအစား သတင်း အချက်အလက် အပေါ် အမြင်ာကွက် အား အမြင်ာကွက် ပြုလုပ်သည်။ ဥပမာ၊ XML MIME အမျိုးအစား အား အမျိုးအစား အား XML အဖြစ် ဖော်ထုတ်သည်။ 1.4 တွင် ဂျူနီယံလ် က ဂျူနီယံလ် အိပ်ချုပ် ကို ဖွင့်လုပ်သည်၊ နှင့် ဆိုင်းတိုက် က အိပ်ချုပ် ကို အားကစားသည်။ ဆိုင်းတိုက် က အိပ်ချုပ် ကို ဖွင့်လုပ်ပြီး ပြန်တင်သော အချက်အလက် ကို အားကစား ပြီး အားကစား လုပ်ငန်း ကို ခေါ်ဆိုသည်။ အသုံးပြုနိုင် အမှားများ:

  • "xml": 返回 XML 文档,可用 jQuery 处理。
  • "html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
  • "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
  • "json": 返回 JSON 数据 。
  • "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
  • "text": 返回纯文本字符串
error

အမျိုးအစား: Function

默认值: 自动判断 (xml 或 html)。请求失败时调用此函数。

有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。

如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 "timeout", "error", "notmodified" 和 "parsererror"。

这是一个 Ajax 事件。

global

အမျိုးအစား: Boolean

是否触发全局 AJAX 事件。默认值: true。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。

ifModified

အမျိုးအစား: Boolean

အခြေခံ အချက်အလက် ပြောင်းလဲခဲ့ သောအခါ အသစ်သတင်း ကို ရယူပါ၍ မရယူဘဲရှိသည်။ ပုံစံ: false။ HTTP ပုံစံ Last-Modified အချက်အလက် အသုံးပြု၍ အခြေခံ အချက်အလက် ကို စစ်ဆေးသည်။ ဂျူနီဂျီ ၁.၄ တွင် အခြေခံ အချက်အလက် ကို ပြန်လည်စစ်ဆေးသည်။

JSONP

အမျိုးအစား: String

ကိုယ်စားပြုပြီး JSONP သတင်းတင်ခြင်း အမည် ကို ပြန်လည်ချွတ်ပြီးကြည့်သည်။ ဤ သတ်မှတ်ချက် သည် "callback=?" သတင်းတင်ခြင်း များ သို့မဟုတ် GET သတင်းတင်ခြင်း သို့မဟုတ် POST သတင်းတင်ခြင်း အရ URL အပ်ချက် အရ "callback" အချက်အလက် ကို အလွှဲပြောင်းကြောင်း သုံးသည်။ ဥပမာ {jsonp:'onJsonPLoad'} သည် ကြောင့် "onJsonPLoad=?" ကို အခြေခံ အက်စ်အက်အယ် ကို ပေးသွင်းသည်။

jsonpCallback

အမျိုးအစား: String

为 jsonp 请求指定一个回调函数名。这个值将用来取代 jQuery 自动生成的随机函数名。这主要用来让 jQuery 生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存 GET 请求的时候,指定这个回调函数名。

password

အမျိုးအစား: String

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

processData

အမျိုးအစား: Boolean

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

scriptCharset

အမျိုးအစား: String

只有当请求时 dataType 为 "jsonp" 或 "script",并且 type 是 "GET" 才会用于强制修改 charset。通常只在本地和远程的内容编码不同时使用。

success

အမျိုးအစား: Function

请求成功后的回调函数。

参数:由服务器返回,并根据 dataType 参数进行处理后的数据;描述状态的字符串。

这是一个 Ajax 事件。

traditional

အမျိုးအစား: Boolean

သင် အခြား အမျိုးအစား ကို အသုံးပြုသည့် အခါတွင် အခြား အမျိုးအစား ကို အပြန်လည်ရေးသားသည့် အခါတွင် အခြား အမျိုးအစား ကို အပြန်လည်ရေးသားသည်။ အဆိုပါ အခြား အမျိုးအစား သည် jQuery.param အောက်ရှိ အက္ခရာ အောက်ရှိ သတ္တုပုံး ကို အခြား အမျိုးအစား ကို အပြန်လည်ရေးသားသည်။

timeout

အမျိုးအစား: Number

သတင်းပေးစက် အချိန်ကျဆင်းခြင်း အချိန် (မိနစ်) ကို အစားထိုးသည်။ အဆိုပါ အစားထိုးခြင်း သည် အနည်းငယ် အခြေအနေ အစားထိုးခြင်း ဖြစ်သည်။

type

အမျိုးအစား: String

မျှော်လင့်ချက်: "GET") ဖြစ်သည်။ သတင်းပေးစက် အမျိုးအစား ("POST" သို့မဟုတ် "GET") အခြား HTTP သတင်းပေးစက် အမျိုးအစားများ လည်း အသုံးပြုနိုင်သည်။ သို့သော် အချို့ ဘာသာပြန်သည် သာမန် အခြေအနေ ဖြစ်သည်။

url

အမျိုးအစား: String

မျှော်လင့်ချက်: ဖြင့် ဖြစ်သည်။ သတင်းပေးသည့် လမ်းကြောင်း။

username

အမျိုးအစား: String

HTTP ခွင့်ပြုခံရသည့် အခွင့်အရေး တော်လှန်ခြင်း အတွက် အသုံးပြုသော အသုံးပြုသူအမည်ဖြစ်သည်။

xhr

အမျိုးအစား: Function

လိုသားသည် ရှိသော XMLHttpRequest အား ပြန်လည်သတင်းပေးသည်။ တမ်းသတ္တုပုံး တွင် အခြား အခြေအနေများ တွင် XMLHttpRequest ဖြစ်သည်။ အဆိုပါ သတ္တုပုံး ကို အပြန်လည်ရေးသားသို့မဟုတ် အပြည့်အဝင် တူးဖက်သည်။ အဆိုပါ သတ္တုပုံး သည် jQuery 1.3 အထိ အသုံးပြုခြင်း မရှိသည်။

回调函数

如果要处理 $.ajax() 得到的数据,则需要使用回调函数:beforeSend、error、dataFilter、success、complete。

beforeSend

在发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。

error

在请求出错时调用。传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话)

dataFilter

在请求成功之后调用。传入返回的数据以及 "dataType" 参数的值。并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。

success

当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。

complete

当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。

数据类型

$.ajax() 函数依赖服务器提供的信息来处理返回的数据。如果服务器报告说返回的数据是 XML,那么返回的结果就可以用普通的 XML 方法或者 jQuery 的选择器来遍历。如果见得到其他类型,比如 HTML,则数据就以文本形式来对待。

通过 dataType 选项还可以指定其他不同数据处理方式。除了单纯的 XML,还可以指定 html、json、jsonp、script 或者 text。

其中,text 和 xml 类型返回的数据不会经过处理。数据仅仅简单的将 XMLHttpRequest 的 responseText 或 responseHTML 属性传递给 success 回调函数。

注意:我们必须确保网页服务器报告的 MIME 类型与我们选择的 dataType 所匹配。比如说,XML的话,服务器端就必须声明 text/xml 或者 application/xml 来获得一致的结果。

အမှတ် 1: ပုံစံ html အမှတ်သား ဖြစ်စေရမည်ဆိုလျှင် ၊ အဆိုပါ JavaScript အတွက် ကိုယ်တိုင် HTML အမှတ်သား ကို အစားအပြု ပြီး အစားအပြု ပြီးနောက် HTML အမှတ်သား ကို စကားလုံး အဖြစ် တင်ပြကြရမည်ဖြစ်သည် ။ အမှတ်ပြင် ပုံစံ script အမှတ်သား ဖြစ်စေရမည်ဆိုလျှင် ၊ ကိုယ်တိုင် အင်တာနက် ပေါ်မှ ပုံစံ JavaScript ကို အလိုက်လိုက် ပြီး ပုံစံ ကို စကားလုံး အဖြစ် တင်ပြကြရမည်ဖြစ်သည်。

如果指定为 json 类型,则会把获取到的数据作为一个 JavaScript 对象来解析,并且把构建好的对象作为结果返回。为了实现这个目的,它首先尝试使用 JSON.parse()。如果浏览器不支持,则使用一个函数来构建。

JSON 数据是一种能很方便通过 JavaScript 解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用 jsonp 类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的 URL 后面。服务器端应当在 JSON 数据前加上回调函数名,以便完成一个有效的 JSONP 请求。如果要指定回调函数的参数名来取代默认的 callback,可以通过设置 $.ajax() 的 jsonp 参数。

注意:JSONP 是 JSON 格式的扩展。它要求一些服务器端的代码来检测并处理查询字符串参数。

如果指定了 script 或者 jsonp 类型,那么当从服务器接收到数据时,实际上是用了