ajax通过 HTTP 请求加载远程数据。
jQuery 底层 AJAX 实现。简单易用▲的高层实※现见 $.get, $.post 等。$.ajax() 返回其创□□□□建的 XMLHttpRequest 对象。大多数情◣况下你无□□□需直接操□□作该函数,除非你需◢要操作不□□常用的选◆项,以获得更□□多的灵活□□性。
最简单的情况下,$.ajax()可以不带任何参数直接使用。
注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置。
如果要处理$.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 来获得一□□□□致的结果。
如果指定□□为html类型,任何内嵌□□的JavaScript都会在HTML作为一个丨字符串返□□□□回之前执★行。类似的,指定script类型的话,也会先执□□□□行服务器□□□□端生成JavaScript,然后再把☆脚本作为□□□□一个文本•数据返回。
如果指定□□□为json类型,则会把获◆取到的数▼据作为一□□个JavaScript对象来解◎析,并且把构▲建好的对□□□□象作为结□□□□果返回。为了实现□□这个目的,他首先尝□□□试使用JSON.parse()。如果浏览❖器不支持,则使用一□□个函数来□□构建。JSON数据是一□□□种能很方□□□□便通过JavaScript解析的结◢构化数据。如果获取☆的数据文□□□件存放在□□□□远程服务□□□□器上(域名不同,也就是跨□□□域获取数□□□据),则需要使□□□□用jsonp类型。使用这种□□类型的话,会创建一□□□个查询字□□符串参数 callback=? ,这个参数□□□会加在请◤求的URL后面。服务器端◉应当在JSON数据前加□□上回调函□□□数名,以便完成□□□一个有效□□的JSONP请求。如果要指▼定回调函□□数的参数□□□名来取代□□□□默认的callback,可以通过□□□设置$.ajax()的jsonp参数。
注意,JSONP是JSON格式的扩□□□展。他要求一◎些服务器□□□端的代码□□□□来检测并□□□□处理查询□□字符串参□□□□数。更多信息△可以参阅 最初的文□□□□章。
如果指定□□了script或者jsonp类型,那么当从□□□服务器接□□□收到数据※时,实际上是□□□用了<script>标签而不□□□□是XMLHttpRequest对象。这种情况▲下,$.ajax()不再返回□□□□一个XMLHttpRequest对象,并且也不□□会传递事□□□□件处理函□□□数,比如beforeSend。
如没特殊注明,文章均为J9国际集团原创,转载请注明来自https://www.nzweibaum.com/news/5859.html