在jQuery中调用AJAX,将“json”定义为参数?

时间:2014-02-16 14:31:05

标签: javascript jquery ajax

我找到了这行代码。这个AJAX调用的最后一个参数是一个字符串“json”。

它代表什么?

$.get(theUrl, function(e) {
    make(e);
  }, "json")

4 个答案:

答案 0 :(得分:4)

这意味着ajax将返回数据类型json

dataType :(示例:xml,json,script或html)

  

您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回)。可用类型(以及作为成功回调的第一个参数传递的结果)。


  

“json”:将响应评估为JSON并返回JavaScript对象。 JSON数据以严格的方式解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也被拒绝;服务器应该返回null或{}的响应。 (有关正确JSON格式的详细信息,请参阅json.org。)

答案 1 :(得分:1)

此参数表示预期的返回类型。可能的值为xmljsonscripthtml。当您指定预期的返回类型时,jQUery将自动解析服务器的响应并向成功回调提供已处理的变量。

如果省略此参数,则jQuery将使用从服务器发送的Content-Type响应标头来确定如何处理响应。例如,如果服务器发送Content-Type: application/json,则jQuery将自动将响应解析为将传递给成功回调的javascript对象。

通常,如果您正在调用的服务器端脚本已正确编写并通过指定正确的Content-Type响应头来遵守Web标准,则无需在AJAX调用中显式设置此参数:

$.get(theUrl, function(e) {
    // If the server set the Content-Type header to application/json
    // then the "e" variable passed to this function will already be
    // a parsed javascript object
    make(e);
});

答案 2 :(得分:0)

这是你要传递给服务器的任何数据,需要使用对象表示法,如下所示:

{
   param1: "data1",
   param2: "data2"
}

这些将基本上成为请求url末尾的get参数,如下所示:

http://example-site.com/request-link?param1=data1&param2=data2

答案 3 :(得分:0)

它是返回的数据类型:请参阅last paragraph