/ / POST Dati Json che utilizzano lo script Java - java, javascript, json

Dati POST Json utilizzando lo script Java - java, javascript, json

Ho un codice snippet Java già implementato come segue:

          //some logic above

JSONObject json = new JSONObject();

try {

json.put("name", "myname");

json.put("address","myaddress");


List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

nameValuePairs = Utils.addEmpName(nameValuePairs);

nameValuePairs = Utils.addEmpAddress(nameValuePairs);


nameValuePairs.add(new BasicNameValuePair(

"myjsondata",

jsondata.toString());

....

httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
}

Fa una richiesta POST al mio server e invia i dati JSON.

La mia domanda è come faccio a eseguire lo stesso in Javascript. So come costruire i dati JSON ma fino a nameValuePairs sono preoccupato, qualcuno può dirmi come inviarli come il mio corpo JSON tramite javascript?

Il mio codice Javascript è attualmente presente in Javascript

var data= { "name":"myname", "address" : "myaddress" };
var xhr = new XMLHttpRequest();

xhr.open("POST",my_url,true);
xhr.setRequestHeader("Content-type", "application/json;charset=utf-8");
xhr.send(JSON.stringify(data));

Ho bisogno di aiuto per scrivere il nameValuePairs parte per costruire il corpo di JSON

risposte:

2 per risposta № 1

Quasi tutti i moderni framework JavaScript come jQuery o prototype hanno metodi molto semplici per inviare / ricevere oggetti json (-like) a / da un server

AGGIORNARE:

jQuery:

var d = { "aa":"bbbbb", "xxx":"yyyy" };
$.ajax({
url:"http:yourserver.com/your_action",
data:d
});

Prototipo:

var d = { "aa":"bbbbb", "xxx":"yyyy" };
new Ajax.Request( "http:yourserver.com/your_action", { parameters:d } );

Puoi personalizzare cosa fare in caso di invio, fallimento, ecc. Vedere http://api.jquery.com/jQuery.ajax/ e http://api.prototypejs.org/ajax/Ajax/Request/


0 per risposta № 2

Dovresti usare JQuery invece di gestire manualmente le richieste XHR.

Puoi usare $ .Ajax () o $ .Post () funzioni.

$.post( my_url, { "name":"myname", "address" : "myaddress" });

Modificato: Per passare intestazioni HTTP personalizzate, utilizzare $.ajax () invece di $ .post (). Sebbene l'intestazione a cui si fa riferimento utilizzi l'intestazione standard e JQuery dovrebbe rilevare e aggiungerla automaticamente alla richiesta precedente. Ad ogni modo, puoi utilizzare il seguente snippet di codice per ottenere lo stesso risultato usando $ .ajax ().

$.ajax({
url: my_url,
type: "post",
data: { "name":"myname", "address" : "myaddress" },
headers: {
"Content-type": "application/json;charset=utf-8"
},
dataType: "json",
success: function (data) {
console.info(data);
}
});