我正在学习ajax,jquery和json。
我有以下JS Fiddle正在向JSON / ECHO发送请求,并且响应是一个空对象。谁能告诉我我做错了什么?
http://jsfiddle.net/deandalby/7a2t0eb5/3/
var saveUrl = "http://fiddle.jshell.net/echo/json/";
$(document).ready(function () {
$("#saveButton").click(function () {
Save();
});
});
function GetPersonDetails() {
var arrayx = $(":input").serializeArray();
var json = {};
jQuery.each(arrayx, function () {
json[this.name] = this.value;
});
writeToDom('Formatted JSON', JSON.stringify(json, null, 4));
return json;
}
function Save() {
var data = GetPersonDetails();
$.ajax({
url: saveUrl,
dataType: "JSON",
data: data,
type: "POST",
cache: false,
success: function (response) {
writeToDom('Plain Response', JSON.stringify(response));
writeToDom('Formatted Response', JSON.stringify(response, null, 4));
},
error: function (response) {
alert("error");
},
complete: function () {
writeToDom("complete", "");
}
});
}
function writeToDom(title, content) {
$("form").append("<div class='alert alert-success' role='alert'>" + title + ":</div><div><pre>" + content + "</pre></div>");
}
答案 0 :(得分:0)
为了让jsfiddle echo
ajax工作,你必须将数据作为字符串发送。此外,路径/echo/json/
将查找帖子密钥json
,字符串将是值
更改
var data = GetPersonDetails();
要
var data = {json: JSON.stringify(GetPersonDetails())};
如果你正在使用html,那将是:
var data ={ html:'<p>Some text</p>'};
路径为/echo/html/
的 DEMO 强>