ejemplos change jquery

change - jquery set value input



Usando jquery para hacer un POST, ¿cómo suministrar correctamente el parámetro ''datos''? (5)

Me gustaría hacer una llamada ajax como POST, va a ir a mi servlet. Quiero enviar datos parametrizados, como los siguientes:

var mydata = ''param0=some_text&param1=some_more_text'';

Suministro esto como el parámetro ''datos'' de mi llamada jquery ajax (). Entonces esto debería ser insertado en el cuerpo del POST, ¿verdad? (Quiero decir, ¿no se adjunta a mi url ''mysite / save''?):

$.ajax({ url: ''mysite/save'', type: ''POST'', data: mydata });

parece funcionar correctamente En mi servlet, simplemente estoy descargando todos los parámetros recibidos, y veo que todos se ven bien:

private void printParams(HttpServletRequest req) { Enumeration paramNames = req.getParameterNames(); while (paramNames.hasMoreElements()) { // print each param key/val here. } }

también, debería url codificar mi cadena de datos manualmente antes de usar, ¿verdad? Me gusta:

var mydata = ''param0='' + urlencode(''hi there!''); mydata += ''&param1='' + urlencode(''blah blah''); mydata += ''%param2='' + urlencode(''we get it'');

¡Gracias!


¿Esto puede ayudarte?

function CallPageSync(url, data) { var response; $.ajax({ async: false, url: url, data: data, timeout: 4000, success: function(result) { response = result; }, error: function(XMLHttpRequest, textStatus, errorThrown) { response = "err--" + XMLHttpRequest.status + " -- " + XMLHttpRequest.statusText; } }); return response; }

y puedes llamarlo como

response = CallPageSync(checkPageURL, "un=" + username);


Necesitas esta parte:

data: JSON.stringify({ BarcodeNumber: $(''#shipmentId-input'').val(), StatusId: $(''[name="StatusId"]'').val() }),

Objeto completo:

$.ajax( { url: "/Agent/Shipment/BulkUpdate", method: "POST", contentType: "application/json", dataType: "json", data: JSON.stringify({ BarcodeNumber: $(''#shipmentId-input'').val(), StatusId: $(''[name="StatusId"]'').val() }), success: function (data, textStatus, jqXHR) { if (textStatus== "success") { alert(data); // Do something on page } else { // Do something on page } }, error: function (jqXHR, textStatus, errorThrown){ } });


No es necesario codificar las variables POST de la URL. Sin embargo, si está interactuando con una base de datos, querrá asegurarse de que sus variables estén protegidas contra ataques de inyección.

Lo que tenga funcionará, sin embargo, como mencionó Vivin , si es una forma, entonces la mejor manera de hacerlo es a través de .serialize() .

Utilizo esto MUCHO personalmente para todas las presentaciones de mi formulario (realizadas a través de .ajax() ).


Si tiene un formulario, también puede hacer var data = jQuery("#myForm").serialize(); que lo coloca en una forma que jQuery.ajax puede entender y usar. De lo contrario, usa el literal objeto descrito en la respuesta de Nick.


Una forma más fácil es proporcionar la propiedad de data como un objeto, como esto:

$.ajax({ url: ''mysite/save'', type: ''POST'', data: { param0:''hi there!'', param1:''blah blah'', param2:''we get it'' } });

De lo contrario, sí, debería codificarlo, ya que cualquier cosa con un & por ejemplo, arruinaría las cosas muy rápidamente. Sin embargo, en mi opinión, proporcionarlo como un objeto es un enfoque mucho más sencillo / más sencillo.

También puede espaciarlo y recuperar propiedades de otros lugares en línea, como esto:

$.ajax({ url: ''mysite/save'', type: ''POST'', data: { param0: $(''#textbox0'').val(), param1: $(''#textbox1'').val(), param2: $(''#textbox2'').val() } });

Edición: si tiene curiosidad por saber cómo jQuery realiza esta codificación internamente, está usando $.param() (que también puede usar directamente) para codificar el objeto en una cadena, llamada here , y las agallas here .