friendly encriptar javascript jquery ajax http

javascript - encriptar - jquery ajax post



URL Codifique una cadena en jQuery para una solicitud AJAX (5)

Estoy usando MVC3 / EntityFramework como back-end, el front-end consume todos mis controladores de proyecto a través de jquery, la publicación directa (usando $ .post) no requiere la inscripción de datos, cuando pasa parámetros directamente distintos de la URL codificada. Ya probé varios caracteres, incluso envié una URL (esta http://www.ihackforfun.eu/index.php?title=update-on-url-crazy&more=1&c=1&tb=1&pb=1 ) como parámetro y tenía no hay problema en absoluto, aunque encodeURIComponent funciona muy bien cuando pasa todos los datos dentro de la URL (codificado)

URL codificada es decir>

var encodedName = encodeURIComponent(name); var url = "ControllerName/ActionName/" + encodedName + "/" + keyword + "/" + description + "/" + linkUrl + "/" + includeMetrics + "/" + typeTask + "/" + project + "/" + userCreated + "/" + userModified + "/" + status + "/" + parent;; // + name + "/" + keyword + "/" + description + "/" + linkUrl + "/" + includeMetrics + "/" + typeTask + "/" + project + "/" + userCreated + "/" + userModified + "/" + status + "/" + parent;

De lo contrario, no utilice encodeURIComponent e intente pasar parámetros dentro del método post ajax

var url = "ControllerName/ActionName/"; $.post(url, { name: nameVal, fkKeyword: keyword, description: descriptionVal, linkUrl: linkUrlVal, includeMetrics: includeMetricsVal, FKTypeTask: typeTask, FKProject: project, FKUserCreated: userCreated, FKUserModified: userModified, FKStatus: status, FKParent: parent }, function (data) {.......});

Estoy implementando la búsqueda instantánea de Google en mi aplicación. Me gustaría disparar solicitudes HTTP a medida que el usuario escribe en la entrada de texto. El único problema que tengo es que cuando el usuario llega a un espacio entre el nombre y el apellido, el espacio no se codifica como un + , lo que rompe la búsqueda. ¿Cómo puedo reemplazar el espacio con un + , o simplemente URL segura Codificar la cadena?

$("#search").keypress(function(){ var query = "{% url accounts.views.instasearch %}?q=" + $(''#tags'').val(); var options = {}; $("#results").html(ajax_load).load(query); });


Intente encodeURIComponent .

Codifica un componente de identificador uniforme de recursos (URI) al reemplazar cada instancia de ciertos caracteres por una, dos, tres o cuatro secuencias de escape que representan la codificación UTF-8 del carácter (solo habrá cuatro secuencias de escape para los caracteres compuestos por dos "sustitutos" " caracteres).

Ejemplo:

var encoded = encodeURIComponent(str);


Mejor manera:

encodeURIComponent escapa a todos los caracteres excepto lo siguiente: alphabetic, decimal digits, - _ . ! ~ * '' ( ) alphabetic, decimal digits, - _ . ! ~ * '' ( )

Para evitar solicitudes inesperadas al servidor, debe llamar a encodeURIComponent en cualquier parámetro ingresado por el usuario que se pasará como parte de un URI. Por ejemplo, un usuario podría escribir "Tomillo y tiempo = de nuevo" para un comentario variable. No usar encodeURIComponent en esta variable dará un comentario = Thyme% 20 & time = again. Tenga en cuenta que el signo y el signo igual marcan un nuevo par de clave y valor. Entonces, en lugar de tener una clave de comentario POST igual a "Thyme & time = again", tienes dos claves POST, una igual a "Thyme" y otra (time) igual a otra vez.

Para application / x-www-form-urlencoded (POST), según http://www.w3.org/TR/html401/interac...m-content-type , los espacios deben reemplazarse por ''+'', por lo que es posible que desee seguir un reemplazo de encodeURIComponent con un reemplazo adicional de "% 20" con "+".

Si uno desea ser más estricto al adherirse a RFC 3986 (¡que se reserva!, '', (,) Y *), aunque estos caracteres no tienen usos de delimitación de URI formalizados, se puede usar de forma segura lo siguiente:

function fixedEncodeURIComponent (str) { return encodeURIComponent(str).replace(/[!''()]/g, escape).replace(//*/g, "%2A"); }


prueba este

var query = "{% url accounts.views.instasearch %}?q=" + $(''#tags'').val().replace(/ /g, ''+'');


encodeURIComponent funciona bien para mí. Podemos dar la url como esta en la llamada ajax. El código que se muestra a continuación:

$.ajax({ cache: false, type: "POST", url: "http://atandra.mivamerchantdev.com//mm5/json.mvc?Store_Code=ATA&Function=Module&Module_Code=thub_connector&Module_Function=THUB_Request", data: "strChannelName=" + $(''#txtupdstorename'').val() + "&ServiceUrl=" + encodeURIComponent($(''#txtupdserviceurl'').val()), dataType: "HTML", success: function (data) { }, error: function (xhr, ajaxOptions, thrownError) { } });