2013-12-18 3 views
0

Нормальный, мы можем отправить запрос ajax или отправить форму на сервер, который HTTP request body будет кодироваться следующим образом: name=helloworld&age=123.Javascript: Как отправить тело запроса произвольного запроса на сервер?

Теперь наш сервер only accept JSON data как тело запроса, есть ли способ изменить способ кодирования тела запроса в Javascript?

+0

Можете ли вы приложить образец кода? –

+0

@MrROY - вы не можете изменить его для форм. Однако запросы AJAX могут быть представлены как JSON. – cloudfeet

ответ

2

HTML-формы предоставляют вам три варианта кодирования данных. text/plain полезен только для отладки (и не очень полезного события, а затем для инструментов разработчика браузера), ни один из двух других не является JSON.

С XHR кодирование, однако, вы кодируете данные. Метод send просто берет строку. Вы можете кодировать данные в нем, как вам нравится.

function sendJSON() { 
    var data = { 
     name: "helloworld", 
     age: 123 
    }; 

    var json = JSON.stringify(data); 

    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "/example/"); 
    xhr.setRequestHeader("Content-Type", "application/json"); 
    xhr.send(json); 
} 
+0

он сказал, что говорит о звонках ajax, поэтому я предполагаю, что он не говорит о подаче формы. –

+0

@Udi - спрашивающий говорит «запрос ajax или отправьте форму», поэтому я предполагаю, что они заинтересованы в обоих. Однако, я думаю, этот ответ должен включать тот факт, что вы не можете сделать что-то подобное для простых форм. – cloudfeet

+0

@cloudfeet Вы правы. Виноват. –

Смежные вопросы