我需要在jQuery的ajax调用中发送 JSON 数据,如下所示:
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: '{"assessmentId":1,"pageId":1,"currentPage":2}',
async: false,
success: function(data) {
// TO DO
}
});
这工作正常,但我发送的数据需要存储在这样的变量中:
var jsonSendingData = '{"assessmentId":1,"pageId":1,"currentPage":2}';
一旦我将它保存在变量jsonSendingData中并传入ajax调用,它就会给我错误。
我还尝试将json数据字符串化,如下所示:
var jsonSendingData = JSON.stringify([{"assessmentId":1,"pageId":1,"currentPage":2}]);
它不起作用。我在这里做错了什么?
答案 0 :(得分:2)
您不需要将数据作为字符串发送,jQuery
将为您执行此操作。试试这个
var myData = {
assessmentId: 1,
pageId: 1,
currentPage: 2
};
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: myData, //Notice the change here
async: false,
success: function(data) {
// TO DO
}
});
PS:非常similar answer here。请检查一下。
答案 1 :(得分:1)
存储在变量中时,您不需要引号。
var jsonSendingData = {
assessmentId:1,
pageId:1,
currentPage:2
};
jQuery.ajax({
url:url,
type:'POST',
data:jsonSendingData
}).done(function(data){
console.log(data);
});
否则您必须在请求标头中指定它
var datastring = JSON.stringify(jsonSendingData);
data: datastring,
contentType: "application/json",