Это ответ в php. Я могу подтвердить, что данные в порядке.JQuery Ajax ответ не работает на Firefox
$ajax_response = array(
'product_code' => $ajax_products,
'filter' => $ajax_filter
);
echo json_encode($ajax_response);
exit();
Вот код в JavaScript:
$('#pr_category_filter').submit(function (event) {
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
data: $(this).serialize(),
dataType: 'json',
cache: false,
success: function (data) {
if (data.product_code != null) {
$('#pagination_contents').replaceWith(data.product_code);
}
if (data.filter != null) {
$('#category_filter').replaceWith(data.filter);
}
},
error: function (request, status, error) {
return false;
}
});
event.preventDefault(event);
});
Этот код хорошо работает на Chrome и Opera. Однако этот код не работает в Firefox, потому что php «echo» отображается в Firefox вместо ответа ajax. Я также попытался поставить console.debug ('invoked') в javascript. В Firefox не отображается результат, отличный от Chrome. Вы знаете причину?
Ответ такой же в разработке инструментов браузеров.
Благодаря
Что вы подразумеваете под «php 'echo» отображается в Firefox вместо ответа ajax? ?? – developerwjk
В нормальном случае ответ ajax заменяется на теги с id pagination_contents и #category_filter. В Firefox ответ на ajax отображается на экране, как новый HTTP-запрос/ответ. Другими словами, есть новая страница с ответом ajax. –
Я не знаю, но мне кажется странным, что функция 'error:' возвращает значение. «Error:» и «success:» - это функции обратного вызова. Куда это будет стоить? – developerwjk