【发布时间】:2016-04-12 03:20:24
【问题描述】:
这是 php.ini 中的响应。我可以确认数据没问题。
$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 响应。我还尝试在 javascript 中放置一个 console.debug('invoked') 。与 Chrome 相反,Firefox 中不显示任何结果。你知道原因吗?
浏览器工具开发的响应是一样的。
谢谢
【问题讨论】:
-
“php 'echo' 显示在 Firefox 上而不是 ajax 响应”是什么意思??
-
在正常情况下,ajax 响应被替换为 id 为 pagination_contents 和 #category_filter 的标签。在 Firefox 上,ajax 响应像新的 http 请求/响应一样显示在屏幕上。换句话说,有一个带有 ajax 响应的新页面。
-
我不知道,但我觉得你的
error:函数返回一个值很奇怪。error:和success:是回调函数。这个值会去哪里? -
你的 HTML 是什么样的?
标签: php jquery ajax google-chrome firefox