He agotado todas las avenidas de investigación para resolver esta, así que espero que alguien más piense en algo que simplemente no hice.
Configuración relativamente sencilla, tengo una página html con algunos javascript que hace una solicitud AJAX a un URL (en el mismo dominio) la aplicación web java en segundo plano hace sus cosas y devuelve una página html parcial (no html , etiquetas de cabeza o cuerpo, solo el contenido) que debe insertarse en un punto particular de la página.
Todo suena bastante fácil y el código que tengo funciona en IE, Firefox y Safari, pero no en Chrome. En Chrome, el elemento de destino simplemente termina vacío y si miro la solicitud de recursos en las herramientas de desarrollador de Chromes, el contenido de la respuesta también está vacío.
Todo muy confuso, he intentado infinidad de cosas para solucionarlo y me he quedado sin ideas. Cualquier ayuda sería muy apreciada.
var container = $('#container');
$.ajax({
type: 'GET',
url: '/path/to/local/url',
data: data('parameters=value&another=value2'),
dataType: 'html',
cache: false,
beforeSend: requestBefore,
complete: requestComplete,
success: requestSuccess,
error: requestError
});
function data(parameters) {
var dictionary = {};
var pairs = parameters.split('&');
for (var i = 0; i < pairs.length; i++) {
var keyValuePair = pairs[i].split('=');
dictionary[keyValuePair[0]] = keyValuePair[1];
}
return dictionary;
}
function requestBefore() {
container.find('.message.error').hide();
container.prepend('<div class="modal"><div class="indicator">Loading...</div></div>');
}
function requestComplete() {
container.find('.modal').remove();
}
function requestSuccess(response) {
container.empty();
container.html(response);
}
function requestError(response) {
if (response.status == 200 && response.responseText == 'OK') {
requestSuccess(response);
} else {
container.find('.message.error').fadeIn('slow');
}
}
Todo esto se ejecuta en un $ (documento) .ready (función() {});
Saludos, Jim
@Oleg - información adicional solicitada, un ejemplo de la respuesta que la llamada ajax podría recibir.
<p class="message error hidden">An unknown error occured while trying to
retrieve data, please try again shortly.</p>
<div class="timeline">
<a class="icon shuttle-previous"
rel="max_id=16470650733&page=1&q=something">Newer Data</a>
<a class="icon shuttle-next"
rel="max_id=16470650733&page=3&q=something">Older Data</a>
</div>
<ol class="social">
<li class="even">
<div class="avatar">
<img src="sphere_normal.gif"/>
</div>
<p>
Some Content<br/>
<span class="published">Jun 18, 2010 11:29:05 AM</span> - <a
target="_blank" href="">Direct Link</a>
</p>
</li>
<li class="odd">
<div class="avatar">
<img src="sphere_normal.gif"/>
</div>
<p>
Some Content<br/>
<span class="published">Jun 18, 2010 11:29:05 AM</span> - <a
target="_blank" href="">Direct Link</a>
</p>
</li>
</ol>
<div class="timeline">
<a class="icon shuttle-previous"
rel="max_id=16470650733&page=1&q=something">Newer Data</a>
<a class="icon shuttle-next"
rel="max_id=16470650733&page=3&q=something">Older Data</a>
</div>
¿Está ejecutando este local? –
Sí Nick todo esto se está ejecutando bajo una aplicación web Java y lo está en mi máquina local en este momento como http: // localhost: 8090/ – roguepixel
@roguepixel - Para una prueba rápida, intente ejecutar Chrome con un '--disable -web-security' opción en la línea de comandos, el mismo resultado? –