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

Dan*_*hen 19 jquery json http-post

好吧,这是故事:

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

我做了这样的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'
});
Run Code Online (Sandbox Code Playgroud)

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

[name:test,key:foo,key2:bar]
Run Code Online (Sandbox Code Playgroud)

但我得到的是:

name=test&key=foo&key2=bar
Run Code Online (Sandbox Code Playgroud)

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

Shi*_*mas 23

 var data = {'bob':'foo','paul':'dog'};
 $.ajax({
   url: url,
   type: 'POST',
   contentType:'application/json',
   data: JSON.stringify(data),
   dataType:'json'
 });
Run Code Online (Sandbox Code Playgroud)

/**添加**/

如果您需要执行某些操作,上面的内容对服务器的响应没有任何作用,那么当服务器响应时将调用回调.

 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);
        }
    }
 });
Run Code Online (Sandbox Code Playgroud)


Bru*_*Dou -3

dataType: 'json',
Run Code Online (Sandbox Code Playgroud)

  • `dataType` 用于响应返回的数据,而不用于发布。 (2认同)