Ho bisogno di postare dati JSON in un URL ed elaborare la risposta che è anche dati JSON. Come posso farlo usando vanilla javascript, cioè senza librerie di terze parti? Devo anche impostare le intestazioni delle richieste. Per favore qualcuno potrebbe darmi un esempio su come farlo?Come effettuare una richiesta AJAX per postare dati JSON ed elaborare la risposta
6
A
risposta
13
OK Ecco come fare sia richieste GET e POST in vaniglia javascript, cioè non librerie di terze parti, come jQuery, inclusa la configurazione intestazioni di richiesta:
// Just to namespace our functions and avoid collisions
var _SU3 = _SU3 ? _SU3 : new Object();
// Does a get request
// url: the url to GET
// callback: the function to call on server response. The callback function takes a
// single arg, the response text.
_SU3.ajax = function(url, callback){
var ajaxRequest = _SU3.getAjaxRequest(callback);
ajaxRequest.open("GET", url, true);
ajaxRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
ajaxRequest.send(null);
};
// Does a post request
// callback: the function to call on server response. The callback function takes a
// single arg, the response text.
// url: the url to post to
// data: the json obj to post
_SU3.postAjax = function(url, callback, data) {
var ajaxRequest = _SU3.getAjaxRequest(callback);
ajaxRequest.open("POST", url, true);
ajaxRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajaxRequest.setRequestHeader("Connection", "close");
ajaxRequest.send("data=" + encodeURIComponent(data));
};
// Returns an AJAX request obj
_SU3.getAjaxRequest = function(callback) {
var ajaxRequest;
try {
ajaxRequest = new XMLHttpRequest();
} catch (e) {
try {
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
return null;
}
}
}
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState == 4) {
// Prob want to do some error or response checking, but for
// this example just pass the responseText to our callback function
callback(ajaxRequest.responseText);
}
};
return ajaxRequest;
};
usare in questo modo:
function processResponse(responseText) {
// Response text is a json:
var obj = JSON.parse(responseText) // won't work all browsers, there are alternatives
// Do something with obj
....
}
var jsonToPost = .... // whatever your json is
var url = ... // the URL to post to
_SU3.postAjax(url, processResponse, jsonToPost);
Problemi correlati
- 1. jQuery richiesta ajax con risposta JSON, come?
- 2. Liferay richiesta ajax e risposta JSON
- 3. Come analizzare la risposta di Jmeter ed effettuare una nuova richiesta
- 4. Come postare la struttura dei dati come json alla fiaschetta?
- 5. Devo usare JSON o AJAX per i dati di risposta?
- 6. Come effettuare una richiesta Ajax per il login
- 7. Effettuare una richiesta AJAX utilizzando $ .ajax in MVC 4
- 8. "400 Bad Request" risposta per la richiesta AJAX
- 9. Come elaborare JSON utilizzando jquery?
- 10. Risposta JSON Parse ottenuta dalla richiesta AJAX tramite JavaScript
- 11. JSoup: Richiesta di risposta JSON
- 12. Jquery - Memorizza risposta jSON Ajax come variabile
- 13. Come postare/inserire dati json su ListSerializer
- 14. jQuery AJAX La risposta JSON restituisce la chiave "d"
- 15. Binari dati rails ajax json 414 richiesta URI troppo grande
- 16. JAX-WS Per richiesta Json e risposta
- 17. Come postare la richiesta HTTPS utilizzando Retrofit?
- 18. Hot per ottenere dati da una richiesta Ajax con yesod
- 19. Come posso inviare JSON compresso (gzip) come risposta a una richiesta Ajax, da Java?
- 20. Dimensione json massima per la risposta al browser
- 21. jQuery Polling AJAX per risposta JSON, gestione basata su risultato AJAX o contenuto JSON
- 22. Come effettuare una richiesta Chunked via nginx
- 23. jQuery Ajax Richiesta interna Ajax
- 24. Utilizzo di script di Google Apps per postare dati JSON
- 25. jQuery tra domini richiesta per ottenere risposta JSON senza richiamata
- 26. come postare l'array di oggetti json su una web API
- 27. Modo rapido per effettuare più chiamate AJAX
- 28. limite browser richiesta ajax
- 29. Come cancellare la risposta ajax
- 30. Come effettuare una chiamata ajax in yii2?
non credo che saresti in grado di ottenere dati json a meno che i dati non vengano inviati dal server come json_encoded –
vedi la mia risposta, dovrebbe fare quello che vuoi –