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 № 1Quasi 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);
}
});