使用jQuery发送JSON数据

为什么在下面的代码中将数据发送为City=Moscow&Age=25JSON格式而不是?

var arr = {City:'Moscow', Age:25};

$.ajax(

{

url: "Ajax.ashx",

type: "POST",

data: arr,

dataType: 'json',

async: false,

success: function(msg) {

alert(msg);

}

}

);

回答:

因为您既未指定请求内容类型,也未指定正确的JSON请求。这是发送JSON请求的正确方法:

var arr = { City: 'Moscow', Age: 25 };

$.ajax({

url: 'Ajax.ashx',

type: 'POST',

data: JSON.stringify(arr),

contentType: 'application/json; charset=utf-8',

dataType: 'json',

async: false,

success: function(msg) {

alert(msg);

}

});

注意事项:

  • 使用此JSON.stringify方法将javascript对象转换为本地和内置于现代浏览器中的JSON字符串。如果要支持较旧的浏览器,则可能需要包含json2.js
  • 使用contentType属性指定请求内容类型,以便向服务器指示发送JSON请求的意图
  • dataType: 'json'属性用于服务器期望的响应类型。jQuery足够智能,可以从服务器响应标头中 猜测 出来Content-Type。因此,如果您有一个或多或少遵守HTTP协议并响应Content-Type: application/json您的请求的Web服务器,那么jQuery会自动将响应解析为javascript对象并返回到success回调中,因此您无需指定该dataType属性。

注意事项:

  • 您所说arr的 。这是一个具有属性(CityAge)的javascript对象。数组[]在javascript 中用表示。例如[{ City: 'Moscow', Age: 25 }, { City: 'Paris', Age: 30 }],一个包含2个对象的数组。

以上是 使用jQuery发送JSON数据 的全部内容, 来源链接: utcz.com/qa/427694.html

回到顶部