如何将JSON数据发送到服务器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

我有一些数据需要发送到服务器,但他们应该首先变成JSON数据类型。

我做了这样的ajax调用:

    $.ajax({
       url: url, // the url I want to post to.
       type: 'POST',
       contenttype:'application/json; charset=utf-8',
       beforeSend: //some HTTP basic auth stuff
       data: {
          name:'test',
          key:'foo',
          key2:'bar'
       },
       dataType:'JSON'
});

基本上我期待我发送给服务器的数据是:

[name:test,key:foo,key2:bar]

但我得到的是:

name=test&key=foo&key2=bar

我错过了什么?我如何将这些数据转换为JSON?

提问于
用户回答回答于

我有同样的问题。无法将对象作为“数据”发送,需要将对象串联起来。试试这个,你的对象串起来了:

$.ajax({
       url: url,
       type: 'POST',
       contentType:'application/json',
       data: '{
          name:"test",
          key:"foo",
          key2:"bar"
       }',
       dataType:'json'
});
用户回答回答于
 var data = {'bob':'foo','paul':'dog'};
 $.ajax({
   url: url,
   type: 'POST',
   contentType:'application/json',
   data: JSON.stringify(data),
   dataType:'json'
 });

如果需要执行某些操作,那么上述操作对服务器的响应不起任何作用,然后在服务器响应时调用回调。

 var data = {'bob':'foo','paul':'dog'};
 $.ajax({
   url: url,
   type: 'POST',
   contentType:'application/json',
   data: JSON.stringify(data),
   dataType:'json',
   success: function(data){
     //On ajax success do this
     alert(data);
      },
   error: function(xhr, ajaxOptions, thrownError) {
      //On error do this
        if (xhr.status == 200) {

            alert(ajaxOptions);
        }
        else {
            alert(xhr.status);
            alert(thrownError);
        }
    }
 });

扫码关注云+社区