2011-11-22 13 views
18

Cualquiera sabe si con javascript o javascript general, puedo cambiar el referente del encabezado en una llamada http ajax?cambiando la referencia de un AJAX POST

básicamente quiero que se envíe desde mi página, pero tengo una referencia de otra página. Cualquier información sería genial.

+0

Creo que esto podría ser útil: http://stackoverflow.com/questions/220231/accessing-http-headers-in-javascript – mikeY

+0

Normalmente, solo puede enviar solicitudes a su propio dominio. ¿Por qué quieres engañar a tu propio servidor cambiando el referer? –

+0

Posible duplicado de [establecer URL de referencia con solicitud de AJAX] (http://stackoverflow.com/questions/8798706/set-referer-url-with-ajax-request) – user2284570

Respuesta

39

El navegador sobrescribirá el referente siempre para las pruebas que he hecho. Lo que significa que no puede cambiar la referencia de una llamada ajax.

+30

Gracias a Dios, no puedes;) –

+0

¿Al menos puedo estar seguro de que si el navegador no envía un referer, el mío será enviado? – xpy

+2

"Lo que significa que no puede cambiar la referencia de una llamada ajax" - bien, excepto con el violín o cualquier otra cosa que entre navegador y servidor;) – Mtz

6

Puede usar .setRequestHeader('referer', 'foo'), pero no estoy seguro de si el navegador simplemente lo reemplazará con el correcto o no.

a través de jQuery, el método permite .ajax() cabeceras también (.get() y .post() no)

Tenga en cuenta que hay muy poco sentido para hacerlo por lo que no se puede hacer AJAX entre dominios e incluso intentar hacerlo esto podría posiblemente activar reglas de seguridad XHR en algunos navegadores y simplemente detener la solicitud por completo.

+1

el navegador sobrescribir el referer: \ gracias aunque – fmsf

+0

Maldición I desearía que esto fuera posible: estoy cargando 'partes' en una superposición, por ejemplo, al hacer clic en el enlace de edición de un elemento se mostrará una superposición con el formulario de edición, mientras se mantiene la lista de elementos en segundo plano. Quería cambiar la referencia a la URL de la "parte", así que podría recogerla en el siguiente formulario (por lo que podría hacer clic en un enlace para cargar otra página en la superposición, y el enlace posterior mostraría la forma anterior). Desafortunadamente ahora tengo que encontrar otra manera de hacer esto. +1 por hacer algunas pruebas sobre esto. – ClarkeyBoy

+0

Incluso si se cambia el navegador, esta es en realidad la respuesta sobre cómo hacerlo. Obviolsy es bueno saber sobre la función del navegador, pero eso no significa que no pueda hacer eso. No sé en qué situación puede necesitar hacer eso, pero me alegra saberlo. Gracias. – erm3nda

3

Siempre se puede usar esto:

jQuery.ajaxSetup({ 
    'beforeSend': function(xhr) {xhr.setRequestHeader("header key", "header value")} 
}) 

Pero por supuesto, el navegador puede tener una opinión diferente sobre la cabecera árbitro. Esto debe probarse :)

+4

Definitivamente rechazado por Chrome [17.0.963.56]. Si alguien quiere probar habilidades de navegador diferentes, configuré un par de jsFiddles: [uno con 'jQuery.ajaxSetup'] (http://jsfiddle.net/patridge/h4Lvp/) y [uno con una opción en un' jQuery.ajax' llamada] (http://jsfiddle.net/patridge/amA3W/). – patridge