我刚刚进入了jquery的世界,也是javascript的新手。我有一个小的javascript片段如下: -
<script type="text/javascript">
$(function(){
$('a').click(function(event){
event.preventDefault();
$.get('/_add_navigation_',function(response){
$('#themaincontents').html(response);
})
})
</script>
html如下所示: -
<a href="?toaddnavigation">CLICK Me</a>
<div id="themaincontents"></div>
在服务器端,我通过类似
的方式进行xhr标头检查 if request.is_xhr: send response else:redirect somewhere
现在虽然这段代码在chrome和opera上工作得很好,但是在firefox上它表现得有些奇怪。服务器不发回响应而是重定向。这意味着它说没有xhr标头。为什么会在其他两个浏览器上发生这种情况时工作正常。 (我使用的是Firefox 3.6.12) 更新 - 刚刚查看了firefox的请求标头,我发现没有X-Requested-With:XMLHttpRequest标头,但它存在于chrome中)
答案 0 :(得分:0)
并非所有浏览器都发送相同的标头,您不能依赖它们在浏览器之间保持一致。最简单的方法是不依赖浏览器发送内容,而是自己手动发送内容:
$.get('url', {
xhr: 'yes' // add this extra parameter here
}, function(){
});
然后在服务器上检查该GET变量,而不是浏览器可能发送或不发送的标头。