జెక్కీవీ అజాక్స్ - అజాక్స్() మాదిరి

ఉదాహరణ

ఆజక్స్ ద్వారా పాఠ్యం లోడ్ చేయండి:

jQuery 代码:

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

HTML 代码:

<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button id="b01" type="button">Change Content</button>

亲自试一试

定义和用法

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

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

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

మున్నది ప్రత్యామ్నాయంగా:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。

语法

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

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

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

参数

options

రకం: ఆబ్జెక్ట్

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

async

రకం: Boolean

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

注意,同步请求将锁定浏览器,用户的其他操作必须等待请求完成才能执行。

beforeSend(XHR)

రకం: Function

在发送请求前可以修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。

XMLHttpRequest 对象是唯一的参数。

这是一个 Ajax 事件。如果返回 false 可以取消本次 ajax 请求。

cache

రకం: Boolean

默认值: true,当 dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不会缓存此页面。

jQuery 1.2 的新功能。

complete(XHR, TS)

రకం: Function

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

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

ఇది అజాక్స్ ఇవెంట్ అని అంటారు.

contentType

రకం: String

మూలం: "application/x-www-form-urlencoded". సర్వర్ కు సమాచారం పంపడం సమయంలో కంటెంట్ కోడింగ్ రకం.

మూలం అనిపించే పరిస్థితిలో యుక్తమైన మూలం. మీరు $.ajax() కు ఒక content-type ని పరిచయం చేస్తే, అది సర్వర్ కు పంపబడుతుంది (డేటా పంపకపోయినప్పటికీ).

context

రకం: ఆబ్జెక్ట్

ఈ ఆబ్జెక్ట్ అజాక్స్ సంబంధిత కాల్బ్యాక్ ఫంక్షన్స్ యొక్క కాంటెక్స్ట్ ను నిర్ధారించడానికి ఉపయోగిస్తారు. అంటే కాల్బ్యాక్ ఫంక్షన్లలో this ఈ ఆబ్జెక్ట్ ను సూచిస్తుంది (ఈ పారామీటర్ నిర్దేశించబడలేకపోతే, this అజాక్స్ ఆజ్ ప్రాసెస్ చేసే కాలంలో పాస్ చేసిన options పారామీటర్ ను సూచిస్తుంది). ఉదాహరణకు ఒక డామ్ ఎలిమెంట్ ను context పారామీటర్ గా నిర్దేశించడం ద్వారా సఫలత కాల్బ్యాక్ ఫంక్షన్ యొక్క కాంటెక్స్ట్ ఈ డామ్ ఎలిమెంట్ ను సూచిస్తుంది.

ఇలా ఉంటుంది:

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

రకం: String

సర్వర్ కు పంపే డేటా. ఆటోమాటిక్గా రెక్వెస్ట్ స్ట్రింగ్ ఫార్మాట్లో మార్చబడుతుంది. GET రెక్వెస్ట్లో యూఆర్ఎల్ తో జతచేస్తారు. processData ఆప్షన్ పరిశీలన ద్వారా ఈ ఆటోమాటిక్ ట్రాన్స్ఫార్మేషన్ నిషేధించవచ్చు. కీ/విలువ ఫార్మాట్లో ఉండాలి. అయితే అర్థం కాని జతలు ఉంటే, jQuery వివిధ విలువలకు ఒకే నామం అందిస్తుంది. ఉదాహరణకు {foo:["bar1", "bar2"]} అనేది '&foo=bar1&foo=bar2' లో మార్చబడుతుంది.

dataFilter

రకం: Function

అజాక్స్ పునఃప్రతిపాదించే ప్రాథమిక డేటాను ముందుగా ప్రాసెస్ చేసే ఫంక్షన్. data మరియు type రెండు పారామీటర్స్ అందిస్తుంది: data అజాక్స్ పునఃప్రతిపాదించే ప్రాథమిక డేటా, type అజాక్స్ ఆజ్ ప్రాసెస్ చేసే కాలంలో అందించిన dataType పారామీటర్. ఫంక్షన్ అందించిన విలువ జూనీరీ మరోవరగా ప్రాసెస్ చేస్తుంది.

dataType

రకం: String

సర్వర్ పునఃప్రతిపాదించే డేటా రకం. యది నిర్దేశించబడలేకపోతే, jQuery స్వయంచాలకంగా HTTP ప్యాక్ MIME సమాచారం ఆధారంగా స్మార్ట్ అనిశ్చితంగా గుర్తిస్తుంది, ఉదాహరణకు XML MIME రకం గుర్తించబడుతుంది అలాగే XML. 1.4 లో, JSON ఒక జావాస్క్రిప్ట్ ఆబ్జెక్ట్ ను ఉత్పత్తి చేస్తుంది, మరియు script అదే స్క్రిప్ట్ ను నిర్వహిస్తుంది. తరువాత సర్వర్ పునఃప్రతిపాదించే డేటా ఈ విలువ ఆధారంగా పరిశీలించబడి, పిల్లి ఫంక్షన్ కు పంపబడుతుంది. వినియోగదారి విలువలు కనిపిస్తాయి:

  • "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" వంటి పరిణామాలు ఉంటాయి.

ఇది అజాక్స్ ఇవెంట్ అని అంటారు.

global

రకం: Boolean

అన్ని వినియోగదారులకు అనువర్తించే AJAX ఇవెంట్లను ప్రారంభించాలా? అప్రమేయం: true. false గా సెట్ చేసినప్పుడు, అన్ని వినియోగదారులకు అనువర్తించే AJAX ఇవెంట్లు ప్రారంభించబడవు, ఉదాహరణకు ajaxStart లేదా ajaxStop అనేవి వివిధ AJAX ఇవెంట్లను నియంత్రించడానికి ఉపయోగించబడవు.

ifModified

రకం: Boolean

సర్వర్ డాటా మార్పులుగా ఉన్నప్పుడు కొత్త డాటాలను పొందండి. అప్రమేయం: false. HTTP ప్యాక్ Last-Modified హెడ్ సమాచారం వాడి ఆటోమేటిక్గా గుర్తించబడుతుంది. జూనీలే వందరు వాడినప్పుడు, అది సర్వర్ నిర్దేశించిన 'etag' ను కూడా పరిశీలిస్తుంది మరియు డాటా మార్పులు లేవని గుర్తిస్తుంది.

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" తో కలిసి ప్రత్యక్షంగా పరివర్తించబడుతుంది. డామ్ ట్రీ సమాచారం లేదా ఇతర మార్పిడి కాని సమాచారాన్ని పంపడానికి మార్పిడి చేయకుండా false చేయండి.

scriptCharset

రకం: String

మాత్రమే అభ్యర్ధన కేవలం dataType "jsonp" లేదా "script" ఉంటే మరియు type "GET" ఉంటే ఈ పరామితిని బలవంతంగా మార్చడానికి ఉపయోగించబడుతుంది. సాధారణంగా స్థానిక మరియు దూరస్థ కంటెంట్ కోడింగ్ వివిధంగా ఉన్నప్పుడు ఉపయోగించబడుతుంది.

success

రకం: Function

అభ్యర్ధన సఫలమైన తర్వాత బికింగ్ ఫంక్షన్.

పరామితి: సర్వర్ నుండి తిరిగి వచ్చిన మరియు dataType పరామితి మీద చికిత్స చేయబడిన డాటా; స్థితి పద్ధతి అనే పదాన్ని వివరించే స్ట్రింగ్.

ఇది అజాక్స్ ఇవెంట్ అని అంటారు.

traditional

రకం: Boolean

మీరు సంకేతాలను పద్ధతిని వాడినట్లు కాకుండా మీరు మూల్యాన్ని నిర్ధారించాలి అయితే, దానిని true చేయండి. జెక్కీ పద్ధతుల లోపల జెక్కీ.param పద్ధతిని చూడండి.

timeout

రకం: Number

అభ్యర్ధన సమయం ముద్దలు (మిల్లీసెకన్లు). ఈ అమరణం సర్వసాధారణ అమరణాన్ని మూల్యాంకిస్తుంది.

type

రకం: String

మూలం: "GET")). అభ్యర్ధన పద్ధతి ("POST" లేదా "GET"), మూలం "GET". గమనిక: ఇతర HTTP అభ్యర్ధన పద్ధతులు, అనేకందుకు PUT మరియు DELETE కూడా ఉపయోగించబడవచ్చు, కానీ కొన్ని బ్రౌజర్లు మాత్రమే మద్దతు ఇస్తాయి.

url

రకం: String

మూలం: ప్రస్తుత పేజీ అడ్రెస్. అభ్యర్ధన పంపించే అడ్రెస్.

username

రకం: String

HTTP వినియోగదారి పరిచర్య అభ్యర్ధనకు ఉపయోగించే పేరు.

xhr

రకం: Function

అవసరమైనది XMLHttpRequest అనే పద్ధతిని పొందడం. మొదటిది IE ప్రకారం ActiveXObject మరియు ఇతర పరిస్థితుల్లో XMLHttpRequest . ఈ పద్ధతిని పునర్లేఖించడానికి లేదా ఒక మింగిన పద్ధతిని అందించడానికి ఉపయోగించబడుతుంది. ఈ పరామితి జెక్కీ 1.3 ముందు లేదు.

回调函数

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

beforeSend

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

error

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

dataFilter

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

success

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

complete

అనుబంధ ఫంక్షన్ ని విజయవంతంగా లేదా విఫలంగా పూర్తి అయిన తర్వాత కాల్బాక్ ఫంక్షన్ ని కాల్బాక్ చేయండి, XMLHttpRequest అంశాన్ని మరియు విజయం లేదా విఫలం కోడ్ అంశాన్ని పంపండి.

డాటా రకం

డాటా రకం, $.ajax() ఫంక్షన్ సర్వర్ ప్రాపర్చించిన సమాచారం పై ఆధారపడి డేటాను ప్రాసెస్ చేస్తుంది. సర్వర్ ప్రాపర్చించిన డేటా ఎక్సిమల్ అయితే, అన్ని ఫలితాలు సాధారణ XML మెథడ్స్ లేదా jQuery సెలెక్టర్స్ ద్వారా పరిశీలించబడతాయి. మరొక రకం, ఉదాహరణకు HTML అయితే, డేటా టెక్స్ట్ రూపంలో పరిగణించబడుతుంది.

dataType ఆప్షన్ ద్వారా ఇతర వివిధ డేటా ప్రాసెసింగ్ ని నిర్దేశించవచ్చు. కేవలం XML కాదు, ఐటిఎచ్ టిఎమ్పి, జావాస్క్రిప్ట్, jsonp, లేదా టెక్స్ట్ ని నిర్దేశించవచ్చు.

ఈ లో, టెక్స్ట్ లేదా xml రకాలు అందించబడే డేటా ప్రాసెస్ కాదు. డేటా కేవలం XMLHttpRequest యొక్క responseText లేదా responseHTML అంశాలను success కాల్బాక్ ఫంక్షన్ కు పంపుతారు.

మున్నది ప్రత్యామ్నాయంగా:మాకు వెబ్ సర్వర్ ప్రాపర్చించిన MIME రకం మాకు ఎంచుకున్న dataType తో మొదలు చేయాలి. ఉదాహరణకు, XML అయితే, సర్వర్ పంపిణీ చేసే టెక్స్ట్/ఎక్సిమల్ లేదా అప్లికేషన్/ఎక్సిమల్ గా ప్రకటించాలి ముందు ఏకీకృత ఫలితాలు పొందాలి.

నాణ్యమైన టెక్స్ట్ రకంగా నిర్దేశించినప్పుడు, అన్ని సంకేతపదాలు ఐటిఎచ్ టిఎమ్పి ఒక స్ట్రింగ్ గా అందించబడుతుంది ముందు అమలు అవుతాయి. అలాగే, స్క్రిప్ట్ రకంగా నిర్దేశించినప్పుడు, సర్వర్ పంపిణీ చేసే జావాస్క్రిప్ట్ అమలు అవుతుంది ముందు స్క్రిప్ట్ ను టెక్స్ట్ డేటా గా అందిస్తారు.

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

JSON డాటా అనేది JavaScript ద్వారా సులభంగా పరిశీలించగల సంకేతాలు ఉన్న డాటా రీతి. మానవదేహం సర్వర్కు నుండి డాటా ఫైల్ ను పొందినప్పుడు, డొమైన్ రకం మారినప్పుడు (అనగా క్రాస్ డోమైన్ పొందడం), మనం jsonp రకాన్ని వినియోగించాలి. ఈ రకంలో ఉన్నప్పుడు, మానవదేహం కాల్బ్యాక్ పారామీటర్ ను కాల్బ్యాక్=? అని సృష్టించబడుతుంది, దీనిని అభ్యర్థన యూరిస్పైస్ కు జోడిస్తారు. సర్వర్ సైడ్ లో, JSON డాటా ముందు కాల్బ్యాక్ ఫంక్షన్ పేరును జోడించి, ఒక విజయవంతమైన JSONP అభ్యర్థనను పూర్తి చేస్తారు. కాల్బ్యాక్ ఫంక్షన్ పారామీటర్ ను మార్చడానికి మనం $.ajax() లో jsonp పారామీటర్ ను అమర్చవచ్చు.

మున్నది ప్రత్యామ్నాయంగా:JSONP అనేది JSON ఫార్మాట్ యొక్క విస్తరణ. ఇది సర్వర్ సైడ్ కోడ్ ను అవసరించి, క్వరీ స్ట్రింగ్ పారామీటర్స్ ను గుర్తించి నిర్వహించడానికి అవసరించబడుతుంది.

script లేదా jsonp రకాన్ని నిర్దేశించినప్పుడు, సర్వర్కు నుండి డాటా అందుకున్నప్పుడు, <script> టాగ్ ను వాడబడుతుంది కాదు XMLHttpRequest ఆబ్జెక్ట్ ను వాడబడుతుంది. ఈ సందర్భంలో, $.ajax() కాదు XMLHttpRequest ఆబ్జెక్ట్ ను తిరిగి ఇవ్వదు, మరియు బిఫోర్ సెండ్ వంటి ఇవెంట్ హాండ్లర్స్ ను పంపదు.

డాటా ను సర్వర్కు పంపడం

డిఫాల్ట్ లో, Ajax అభ్యర్ధనలు GET పద్ధతిని వినియోగిస్తాయి. POST పద్ధతిని వినియోగించడానికి, type పారామీటర్ ను అమర్చవచ్చు. ఈ ఆప్షన్ డేటా ఆప్షన్ లోని విషయాన్ని సర్వర్కు పంపడానికి ఎలా పంపాలో ప్రభావితం చేస్తుంది.

డేటా ఆప్షన్ ఒక క్వరీ స్ట్రింగ్ ను కలిగి ఉండవచ్చు, అనగా key1=value1&key2=value2 లేదా ఒక మ్యాప్ ను, అనగా {key1: 'value1', key2: 'value2'} . ఈ రెండవ రూపంలో ఉన్నప్పుడు, డేటా పంపిణీదారికి క్వరీ స్ట్రింగ్ లో మార్చబడుతుంది. ఈ ప్రక్రియ ను ప్రోసెస్ డేటా ఆప్షన్ ను ఫాల్స్ చేసి మినహాయించవచ్చు. మనం ఒక XML ఆబ్జెక్ట్ ను సర్వర్కు పంపడానికి కావలసినప్పుడు, ఈ ప్రక్రియ కాకపోవచ్చు. ఈ సందర్భంలో, మనం contentType ఆప్షన్ ను మార్చి, ముఖ్యమైన MIME టైప్ ను వినియోగించాలి, అనగా application/x-www-form-urlencoded స్థానంలో ఇతర సరిపోయే MIME టైప్ ను వాడాలి.

高级选项

global 选项用于阻止响应注册的回调函数,比如 .ajaxSend,或者 ajaxError,以及类似的方法。这在有些时候很有用,比如发送的请求非常频繁且简短的时候,就可以在 ajaxSend 里禁用这个。

如果服务器需要 HTTP 认证,可以使用用户名和密码可以通过 username 和 password 选项来设置。

Ajax అభ్యర్ధనలు సమయబద్ధం, కాబట్టి వార్తలు అభ్యర్ధనను అద్దుకుని ప్రాసెస్ చేసిన తర్వాత, ఉపయోగదారుల అనుభవాన్ని మెరుగుపరచవచ్చు. అభ్యర్ధన సమయంలో పరిణామించని అనుభవం ఉండదని నిర్ణయించడానికి టైమ్ ఆట్ పారామితిని డిఫాల్ట్ విలువకు ఉంచవచ్చు లేదా jQuery.ajaxSetup ద్వారా గ్లోబల్ గా సెట్ చేయవచ్చు, ప్రత్యేక అభ్యర్ధనకు టైమ్ ఆట ఆప్షన్ను మళ్ళీ సెట్ చేయని అవగాహన ఉంది.

డిఫాల్ట్ పరంగా, అభ్యర్ధనలు పంపబడతాయి, కానీ బ్రౌజర్ దాని క్యాచ్ నుండి డాటాను పొందవచ్చు. క్యాచ్ ఉపయోగించకుండా చేయడానికి కేచ్ పారామితిని false గా సెట్ చేయవచ్చు. తిరిగి అభ్యర్ధన నుండి డాటా మారినప్పుడు తిరిగి అభ్యర్ధనను అవ్వాలని నిర్ణయించడానికి ఇఫ్మోడిఫైడ్ పారామితిని true గా సెట్ చేయవచ్చు.

scriptCharset పరికరం లోని <script> ట్యాగ్ అభ్యర్ధనకు ఒక ప్రత్యేక అక్షరసమాంతరాన్ని అందిస్తుంది, ఇది script లేదా jsonp వంటి డాటాకు ఉపయోగపడుతుంది. స్క్రిప్ట్ మరియు పేజీ అక్షరసమాంతరాలు వ్యత్యాసపడినప్పుడు ఇది ముఖ్యంగా ఉపయోగపడుతుంది.

Ajax యొక్క మొదటి అక్షరం అసింక్రోనస్ యొక్క మొదటి అక్షరం, ఇది అన్ని ప్రక్రియలు పరాలోచనాత్మకంగా ఉన్నట్లు అర్థం. $.ajax() యొక్క async పారామితి ఎల్లప్పుడూ true గా సెట్ చేయబడుతుంది, ఇది అన్ని అభ్యర్ధనలు ప్రారంభించిన తర్వాత ఇతర కోడ్లు అనువర్తించగలిగేటట్లు అర్థం. ఈ ఆప్షన్ను false గా సెట్ చేయకూడదు, ఇది అన్ని అభ్యర్ధనలు అసింక్రోనస్ కాదని అర్థం, ఇది బ్రౌజర్ను లక్ష్యబద్దంగా చేయవచ్చు.

$.ajax ఫంక్షన్ దాని సృష్టించిన XMLHttpRequest ఆబ్జెక్ట్ను అందిస్తుంది. సాధారణంగా జెక్కోయు అంతర్గతంగా నిర్వహించి ఈ ఆబ్జెక్ట్ను సృష్టిస్తుంది, కానీ వినియోగదారులు xhr ఆప్షన్స్ ద్వారా స్వంతంగా సృష్టించిన xhr ఆబ్జెక్ట్ను పంపవచ్చు. అందించబడిన ఆబ్జెక్ట్ సాధారణంగా తొలగించబడింది, కానీ అంతర్గత వినియోగదారులకు అనువుగా పరిశీలించడానికి మరియు పంచుకోవడానికి ఒక అంతర్గత ఇంటర్ఫేస్ను అందిస్తుంది. ఉదాహరణకు, ఆబ్జెక్ట్పై .abort() కాల్స్ ద్వారా అభ్యర్ధనను పూర్తి ముందుగా అటకించవచ్చు.