Подтвердить что ты не робот

Как я могу отправить данные JSON на сервер

Ну, вот история:

У меня есть некоторые данные, которые необходимо отправить на сервер, но сначала они должны были превратиться в 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'
});

В основном я ожидаю, что данные, которые я отправляю на сервер, были:

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

но у меня было:

name=test&key=foo&key2=bar

Что я пропустил? Как я могу получить эти данные в JSON?

4b9b3361

Ответ 1

 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);
        }
    }
 });

Ответ 2

У меня была такая же проблема. Вы не можете отправить объект в виде "данных", вам нужно подкрепить объект. Попробуйте это вместо этого, с вашим строкой объекта:

$.ajax({
       url: url,
       type: 'POST',
       contentType:'application/json',
       data: '{
          name:"test",
          key:"foo",
          key2:"bar"
       }',
       dataType:'json'
});

Ответ 4

Кроме того, необходимо создать параметр и присвоить значение с помощью JSON.stringify

....
data: "jsonString="+JSON.stringify(data),
...

Ответ 5

Я согласен, что данные должны быть преобразованы в строку JSON, а не только для согласования с настройками dataType и contentType, но что более важно, чтобы удовлетворить сервер.

data: JSON.stringify(data),
dataType:'json'

Ответ 6

dataType: 'json',