所以我正在尝试使用jquery $.ajax
发出POST请求。我的问题是发送的数据是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 );
});
答案 0 :(得分: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字符串以进行发布。还要注意从问题数组中删除撇号。
答案 1 :(得分:0)
dataType:json是指我相信的回复。因此,如果服务器响应无效json,您将看到500错误。
尝试查看firebug中的'network(chrome)'或'net(firefoxl)'选项卡以检查响应。
您还可以尝试将dataType:json
更改为dataType:text