admin 管理员组

文章数量: 887173


2024年1月12日发(作者:frog拼读)

参数: options

返回值: xmlHttpRequest

使用HTTP请求一个页面。

这是jquery的低级ajax实现。要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。

警告:如果数据类型指定为"script",那么POST自动转化为GET方法。(因为script会作为一个嵌入页面的script标签进行载入)

$.ajax()函数返回它创建的XMLHttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个XMLHttpRequest对象主要用于需要手动中断XMLHttpRequest请求的时候。

注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如.

xml

的类型是 "text/xml")。错误的MIME类型能够导致脚本出现意想不到的问题。请查看AJAX的范例来了解数据类型的更多信息。

$.ajax()函数需要一个参数,一个包含有键/值对的对象,用于初始化并操作请求对象。

在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?"

。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。

参数选项:

async(true)

数据类型: Boolean

默认情况下,所有的请求都是异步发送的(默认为true)。

如果需要发送同步请求,

设置选项为false。注意,同步请求可能会暂时的锁定浏览器,

当请求激活时不能进行任何操作。

beforeSend

数据类型: Function

一个预处理函数用于在发送前修改XMLHttpRequest对象,设置自定义头部等。

XMLHttpRequest作为惟一的参数被传递。这是一个 Ajax

事件。 function

(XMLHttpRequest) {

this; // the options for this ajax request

}cache(true)

数据类型: Boolean

jQuery 1.2中新添加的参数,

如果设为false,则会强制浏览器不缓存请求的页面。

complete

数据类型: Function

当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个参数: XMLHttpRequest对象和一个描述HTTP相应的状态字符串。

这是一个 Ajax

事件。 function

(XMLHttpRequest, textStatus) {

this; // the options for this ajax request

}contentType("application/x-www-form-urlencoded")

数据类型: String

发送到服务器的数据的内容类型。默认是 "application/x-www-form-urlencoded",

适合大多数情况。

data

数据类型: Object,String

要发送给服务器的数据。如果不是字符串,那么它会被转化为一个查询字符串。在GET请求中它被添加到url的末尾。要防止这种自动转化,请查看processData选项。

数据对象必须是一组键/值对。如果键对应的值是数组,jQuery会将其值赋给同一个键属性。

例如

{foo:["bar1", "bar2"]}

变为 '&foo=bar1&foo=bar2'。

dataType( Intelligent Guess (xml or html))

数据类型: String

期待由服务器返回值类型。如果没有明确指定,jQuery会根据实际返回的MIME类型自动

的将responseXML或responseText传递给success指定的回调函数。有效的类型(返回的类型的结果值会作为第一个参数传递给success指定的回调函数)有: "xml":

返回一个可以由jQuery处理的XML文档。

"html":

返回文本格式的HTML代码。包括求值后的脚本标记。

"script":

将响应作为javascript语句求值,并返回纯文本。不缓存此脚本,除非设置了cache选项。设置为"script"类型会将post方法转换为get方法。

"json":

将响应作为JSON求值,并返回一个Javascript对象。

"jsonp":

使用JSONP载入一个JSON代码块.

会在URL的末尾添加"?callback=?"来指明回调函数。(jQuery 1.2以上的版本支持)

"text":

文本格式的字符串

error

数据类型: Function

请求失败时执行的函数。函数具有3个参数: XMLHttpRequest对象,一个描述产生的错误类型和一个可选的异常对象,

如果有的化。

这是一个Ajax

事件。function (XMLHttpRequest,

textStatus, errorThrown) {

// typically only one of textStatus or errorThrown

// will have info

this; // the options for this ajax request

}global(true)

数据类型: Boolean

是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为false可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。这可以用于控制多个不同的Ajax事件。

ifModified(false)

数据类型: Boolean

只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。默认值为false,即忽略对头部的检查

jsonp

数据类型: String

在jsonp请求中重新设置回调的函数。这个值用于代替'callback=?'中的查询字符串。'callback=?'位于get请求中url的末尾或是post请求传递的数据中。因此设置

{jsonp:'onJsonPLoad'}

会将 'onJsonPLoad=?'

传送给服务器。

processData(true)

数据类型: Boolean

在默认的情况下,如果data选项传进的数据是一个对象而不是字符串,将会自动地被处理和转换成一个查询字符串,以适应默认的content-type--"application/x-www-form-urlencoded"。如果想发送domDocuments,就要把这个选项设置为false。

success

数据类型: Function

当请求成功时调用的函数。这个函数会得到二个参数:从服务器返回的数据(根据“dataType”进行了格式化)和一个描述HTTP相应的状态字符串。这是一个 Ajax

事件。 function (data,

textStatus) {

// data could be xmlDoc, jsonObj, html, text,

this; // the options for this ajax request

}timeout

数据类型: Number

如果通过$.ajaxSetup设置了一个全局timeout,那么此函数使用一个局部timeout覆盖了全局timeout(单位为毫秒)。例如,你可以设置比较长的延迟给一个特殊的请求,同时其他所有请求使用1秒的延迟。有关全局延迟,见$.ajaxTimeout()。

type("GET")

数据类型: String

请求的类型 ("POST"

或 "GET"),

默认是 "GET"。注意:其他的HTTP请求方法,如PUT和DELETE,在这里也可以使用,当时它们并不被所有的浏览器支持。

url(The current page)

数据类型: String

请求发送的目标URL地址

username

数据类型: String

username可用于在响应一个HTTP连接时的认证请求。载入并执行一个JavaScript文件。

$.ajax({

type: "GET",

url: "",

dataType: "script"

});保存数据到服务器,完成后通知用户。

$.ajax({

type: "POST",

url: "",

data: "name=John&location=Boston",

success: function(msg){

alert( "Data Saved: " + msg );

}

});取得一个HTML页面的最新版本。

$.ajax({

url: "",

实例

cache: false,

success: function(html){

$("#results").append(html);

}

});同步载入数据。在执行请求的时候阻塞浏览器。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。

var html = $.ajax({

url: "",

async: false

}).responseText;向服务器发送xml文档数据。通过设置processData选项为false,将数据自动转换为string的动作被禁止了。

var xmlDocument = [create xml document];

$.ajax({

url: "",

processData: false,

data: xmlDocument,

success: handleResponse

});load( url, [data], [callback] )参数:

url (String):

装入页面的URL地址。

params (Map):

(可选)发送到服务端的键/值对参数。

callback (Function):

(可选)

当数据装入完成时执行的函数. function (responseText,

textStatus, XMLHttpRequest) {

this; // dom element

}返回值:

jQuery

装入一个远程HTML内容到一个DOM结点。

默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url #some > selector"。

实例

载入文档的sidebar的导航部分到一个无序列表中。

$("#links").load("/Main_Page #p-Getting-Started li");将文件载入到id为feeds的div中。

$("#feeds").load("");同上,但是发送了附加的参数,并且在响应结束后执行一个自定义函数。

$("#feeds").load("", {limit: 25}, function(){

alert("The last 25 entries in the feed have been loaded");

});( url, [data], [callback] )参数:

url (String):

装入页面的URL地址

Map(可选):

(可选)发送到服务端的键/值对参数

callback (Function):

(可选)

当远程页面装入完成时执行的函数 function (data, textStatus)

{

// data可以是xmlDoc, jsonObj, html, text,

等...

this; // the options for this ajax request

}返回值:

XMLHttpRequest

使用GET请求一个页面。

这是向服务器发送get请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。

实例

请求页,忽略返回值.

$.get("");请求页并发送附加数据(忽略返回值).

$.get("", { name: "John", time: "2pm" } );显示从请求的返回值(HTML

XML,

根据不同返回值).

$.get("", function(data){

alert("Data Loaded: " + data);

});显示向发送附加数据请求的返回值 (HTML

或 XML,

根据不同返回值).

$.get("", { name: "John", time: "2pm" },

function(data){

alert("Data Loaded: " + data);

});N( url, [data], [callback] )参数:

url (String):

装入页面的URL地址

Map(可选):

(可选)发送到服务端的键/值对参数

callback (Function):

(可选)

当数据装入完成时执行的函数 function (data, textStatus) {

// data will be a jsonObj

this; // the options for this ajax request

}返回值:

XMLHttpRequest

使用GET请求JSON数据。

在jQuery 1.2版本中,如果你指明了一个JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?"

。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。注意:

请记住, that lines after this function will be

executed before callback.

实例

从Flickr JSONP API中载入最新的四幅猫的图片

$.getJSON("/services/feeds/photos_?tags=cat&tagmode=any&format=json&jsoncallback=?",

function(data){

$.each(, function(i,item){

$("").attr("src", .m).appendTo("#images");

if ( i == 3 ) return false;

});

});从载入JSON数据,

从返回的JSON数据读取name值。

$.getJSON("", function(json){

alert("JSON Data: " + [3].name);

});从载入JSON数据,

传递一个附加参数,从返回的JSON数据读取name值。

$.getJSON("", { name: "John", time: "2pm" }, function(json){

alert("JSON Data: " + [3].name);

});显示向发送请求的返回值 (HTML

或 XML,

根据不同返回值).

$.getIfModified("", function(data){

alert("Data Loaded: " + data);

});显示向发送请求的返回值 (HTML

或 XML,

根据不同返回值),提供了一个附加的参数.

$.getIfModified("", { name: "John", time: "2pm" },

function(data){

alert("Data Loaded: " + data);

});列出从返回的查询结果,将返回的数组转化为一段HTML代码。

var id=$("#id").attr("value");

$.getJSON("",{id:id},dates);

function dates(datos)

{

$("#list").html("Name:"+datos[1].name+"

"+"Last

Name:"+datos[1].lastname+"

"+"Address:"+datos[1].address);

}ipt( url, [callback] )参数:

url (String):

装入页面的URL地址

callback (Function):

(可选)

当数据装入完成时执行的函数 function (data, textStatus) {

// data应该是javascript

this; // the options for this ajax request

}返回值:

XMLHttpRequest

使用GET请求JavaScript文件并执行。

在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中,

你可以从任何主机载入脚本。警告: Safari 2

及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置一个延迟来执行这个脚本。

实例

我们动态的载入一个新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。

$.getScript("/view/trunk/plugins/color/", function(){

$("#go").click(function(){

$(".block").animate( { backgroundColor: 'pink' }, 1000)

.animate( { backgroundColor: 'blue' }, 1000);

});

});载入 JavaScript文件并执行。

$.getScript("");载入 JavaScript文件并执行,当执行结束后显示一条警告信息。

$.getScript("", function(){

alert("Script loaded and executed.");

});( url, [data], [callback], [type] )参数:

url (String):

装入页面的URL地址

Map(可选):

(可选)发送到服务端的键/值对参数

callback (Function):

(可选)

当数据装入完成时执行的函数 function (data, textStatus) {

// data可能是 xmlDoc, jsonObj, html, text,

等...

this; // the options for this ajax request

}String $.postJSON = function(url, data, callback) {

$.post(url, data, callback, "json");

};返回值:

XMLHttpRequest

使用POST请求一个页面。

这是向服务器发送post请求的简单方法。它可以指定一个回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。

ajaxComplete( callback )参数:

callback (Function):

要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {

this; // dom element listening

}返回值:

jQuery

当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件

实例

当AJAX请求完成时显示一条信息。

$("#msg").ajaxComplete(function(request, settings){

$(this).append("

  • Request Complete.
  • ");

    });ajaxError( callback )参数:

    callback (Function):

    要执行的函数 function (event, XMLHttpRequest, ajaxOptions,

    thrownError) {

    // thrownError only passed if an error was caught

    this; // dom element listening

    }返回值:

    jQuery

    当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件.

    实例

    当AJAX请求错误时显示一条信息。

    $("#msg").ajaxError(function(request, settings){

    $(this).append("

  • Error requesting page " + + "
  • ");

    });ajaxSend( callback )参数:

    callback (Function):

    要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {

    this; // dom element listening

    }返回值:

    jQuery

    在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件.

    实例

    当AJAX请求发出后显示一条信息。

    $("#msg").ajaxSend(function(evt, request, settings){

    $(this).append("

    });ajaxStart( callback )参数:

    callback (Function):

    要执行的函数 function () {

    this; // dom element listening

    }返回值:

    jQuery

    在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件.

    实例

    当AJAX请求开始(并还没有激活时)显示loading信息。

    $("#loading").ajaxStart(function(){

    $(this).show();

    });ajaxStop( callback )参数:

    callback (Function):

    要执行的函数 function () {

    this; // dom element listening

    }返回值:

    jQuery

    当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件.

    实例

    当所有AJAX请求都停止时,隐藏loading信息。

    $("#loading").ajaxStop(function(){

    $(this).hide();

    });ajaxSuccess( callback )参数:

    callback (Function):

    要执行的函数 function (event, XMLHttpRequest, ajaxOptions) {

    this; // dom element listening

    }返回值:

    jQuery

    当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件

    实例

    当AJAX请求成功完成时,显示信息。

    $("#msg").ajaxSuccess(function(evt, request, settings){

    $(this).append("

  • Successful Request!
  • ");

    });tup( options )参数:

    Options:

    用于Ajax请求的键/值对

    为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。

    实例

    设置默认的全局AJAX请求选项。

    $.ajaxSetup({

    url: "/xmlhttp/",

    global: false,

    type: "POST"

    });

    $.ajax({ data: myData });serialize( )返回值:

    jQuery

    以名称和值的方式连接一组input元素。返回值类似于:

    single=Single2&multiple=Multiple&multiple=Multiple3&radio=radio2

    。在jQuery 1.2中。serialize方法实现了正确表单元素序列,而不再需要插件支持。

    实例

    连接表单元素的一组查询字符串,可用于发送Ajax请求。

    function showValues() {

    var str = $("form").serialize();

    $("#results").text(str);

    }

    $(":checkbox, :radio").click(showValues);

    $("select").change(showValues);

    showValues();serializeArray( )返回值:

    jQuery

    连接所有的表单和表单元素(类似于.serialize()方法),但是返回一个JSON数据格式。

    实例

    从form中取得一组值,显示出来

    function showValues() {

    var fields = $(":input").serializeArray();

    alert(fields);

    $("#results").empty();

    (fields, function(i, field){

    $("#results").append( + " ");

    });

    }

    $(":checkbox, :radio").click(showValues);

    $("select").change(showValues);

    showValues();


    本文标签: 请求 函数 执行 数据 类型