Necesito publicar datos JSON en una URL y procesar la respuesta que también es información JSON. ¿Cómo puedo hacer esto usando vainilla javascript, es decir, sin bibliotecas de terceros? También necesito configurar encabezados de solicitud. ¿Podría alguien darme un ejemplo sobre cómo hacer esto?Cómo hacer una solicitud AJAX para publicar datos JSON y procesar la respuesta
6
A
Respuesta
13
OK Aquí es cómo hacer tanto GET y POST peticiones de JavaScript básico, es decir, no hay bibliotecas de terceros como jQuery, incluyendo cómo configurar encabezados de la solicitud:
// 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;
};
utilizar de esta manera:
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);
Cuestiones relacionadas
- 1. Respuesta múltiple Solicitud AJAX
- 2. ¿Debo usar JSON o AJAX para los datos de respuesta?
- 3. New To Rails 3, solicitud ajax con respuesta json
- 4. ¿Cómo hacer una solicitud de cUrl sin recibir la respuesta?
- 5. cURL y HttpURLConnection - Publicar datos JSON
- 6. ¿Cómo puedo usar JQuery para publicar datos JSON?
- 7. Cómo usar WebRequest para publicar datos y obtener respuesta de una página web
- 8. Jquery - Almacene respuesta jSON Ajax como variable
- 9. Publicar datos sin procesar con Python
- 10. jQuery Encuesta AJAX para respuesta JSON, manejo basado en el resultado AJAX o contenido JSON
- 11. Cómo hacer una solicitud de Ajax para iniciar sesión
- 12. Ajax tutorial para publicar y obtener
- 13. Cómo publicar datos json con extJS
- 14. respuesta JQuery AJAX JSON devuelve la clave "d"
- 15. publicar datos ajax en PHP y devolver datos
- 16. ¿Cómo leer una respuesta de WebClient después de publicar datos?
- 17. Obteniendo json en la devolución de llamada de respuesta Ajax
- 18. WCF REST Servicio JSON Publicar datos
- 19. ¿CÓMO PUBLICAR datos JSON con PHP cURL?
- 20. Obteniendo una respuesta HTTP sin procesar
- 21. jQuery Ajax Solicitud dentro de Ajax Solicitud
- 22. Herramienta para publicar json en una url
- 23. Cómo interceptar solicitud/respuesta de jabón sin procesar (datos) del cliente de WCF
- 24. ¿Puedo publicar cadenas JSON/XML como una solicitud POST para REST ServiceStack?
- 25. Respuestas múltiples de una solicitud de AJAX
- 26. JSON IPHONE: ¿Cómo enviar una solicitud JSON y extraer los datos de un servidor?
- 27. ¿Cómo obtengo el mecanismo de Python para PUBLICAR una solicitud de AJAX?
- 28. Cómo enviar datos json en la solicitud Http usando NSURLRequest
- 29. Java: ¿cómo usar UrlConnection para publicar una solicitud con autorización?
- 30. ¿Cómo manejar la solicitud JSON en botella?
no creo que pueda obtener datos json a menos que los datos sean enviados por el servidor como json_encoded –
vea mi respuesta, debería hacer lo que quiera –