JS Fiddle JSON / ECHO返回空对象

时间:2014-12-06 03:01:05

标签: jquery ajax json

我正在学习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>");
}

1 个答案:

答案 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