=波波日志 > JavaScript/Ajax > Ajax服务器端跳转问题讨论=

Ajax服务器端跳转问题讨论

  今天在CSDN看到一个问题,如下
  请问一下,下面这个链接(http://www.sohu.com/dfwejrle.html)明明不存在,却返回有效,是怎么回事?
急,在线等,谢谢!

+展开
-HTML
<script type="text/javascript" src="jquery.js"></script> 
<script>
$.ajax({
  url: 'http://www.sohu.com/dfwejrle.html',
  type: 'GET',
  complete: function(response) {
  if(response.status == 200) {
  alert('有效');
  } else {
  alert('无效');
  }
  }
 });  
</script> 


  下面贴出我原来的回复,由于楼主提前无满意答案结贴了,不知道他看到了没有。

  楼主是用ie浏览器并且直接拖进浏览器里面查看的吧??这样在ie下不存在跨域问题,并且ajax获取不到是否服务器端进行跳转了,但是soho对于访问不存在的页面时都会跳转到首页,所以状态会是200,而不是3xx重定向状态

你通过http协议来看看,肯定跨域了。在ff下直接拖进浏览器查看页会出现跨域错误。


  ajax调用浏览器组件发起的请求和浏览器直接发起的请求有一定区别。
  1)浏览器可以通过返回的http状态进行相应的操作,如访问一个页面,此页面重定向时,浏览器可以获取到重定向后的url然后进行转向。
  2)对于ajax,ajax的目的就是无刷新的,所以对于服务器端进行了重定向时,ajax并不会获取到重定向状态值3xx和重定向url,而是获取到重定向的页面的运行完后的实际html代码,并且返回200状态。

  所以有一些服务器对访问一些实际不存在的页面进行重定向到网站首页或者一些实际存在的页面时,ajax请求这些不存在的页面,也不会返回404,找不到页面的错误,而是返回200状态。
类别:JavaScript/Ajax 作者:波波 日期:2010-05-27 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012WEB编程网桂ICP备05005887号 京公网安备1101055090