0

所以我正在尝试使用 jquery 发出 POST 请求$.ajax。我的问题是发送的数据是 JSON。所以我不确定如何发送它。我正在使用 fiddler 记录 HTTP 请求,这就是我得到的。{"code":200,"user":"34522","questions":[{"35":"139"},{"55":"215"},{"28":"110"},{"88":"349"},{"127":"500"},{"148":"578"},{"125":"492"},{"218":"859"},{"258":"1019"},{"219":"862"}],"time":60}. 在提琴手的网络表单下,那里什么都没有。 在此处输入图像描述

这是我想出的代码,回复是Object {code: 500, error: "Invalid request"}

var request = $.ajax({
      url: "http://website/api/post/",
      type: "POST",
      data: { 
        code : 200,
        user : 34522,
        questions : '[{"35":"139"},{"55":"215"},{"28":"110"},{"88":"349"},{"127":"500"},{"148":"578"},{"125":"492"},{"218":"859"},{"258":"1019"},{"219":"862"}]',
        time : 60
      },
      dataType: "json"
    });

    request.done(function( msg ) {
      console.log(msg);
    });

    request.fail(function( jqXHR, textStatus ) {
      console.log( "Request failed: " + textStatus );
    });
4

2 回答 2

1

尝试在您的帖子数据上使用 JSON.stringify,如下所示:

var request = $.ajax({
  url: "http://website/api/post/",
  type: "POST",
  data: JSON.stringify({ 
    code : 200,
    user : 34522,
    questions : [{"35":"139"},{"55":"215"},{"28":"110"},{"88":"349"},{"127":"500"},{"148":"578"},{"125":"492"},{"218":"859"},{"258":"1019"},{"219":"862"}],
    time : 60
  }),
  dataType: "json"
});

JSON.stringify会将当前 javascript 对象转换为 JSON 字符串以进行发布。另请注意从问题数组周围删除撇号。

于 2013-10-14T01:43:27.060 回答
0

dataType:json 指的是我相信的响应。因此,如果服务器响应不是有效的 json,您会看到 500 错误。

尝试查看 firebug 中的“network (chrome)”或“net (firefoxl)”选项卡以检查响应。

您也可以尝试更改dataType:jsondataType:text

于 2013-10-14T01:31:35.537 回答