首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AJAX不处理302重定向

AJAX不处理302重定向
EN

Stack Overflow用户
提问于 2012-06-22 20:37:54
回答 3查看 6.2K关注 0票数 4

我在试图查询的外部服务器上有一个数据库。为此,我将在本地服务器(Tomcat)上创建一个AJAX调用(只是XMLHttpRequest对象--我不使用任何JavaScript库),并附带一个查询。将完全相同的URL粘贴到Firefox中会导致它尝试下载XML文档。我的目标是使用AJAX获取XML文档。

我遇到的问题是,当我使用AJAX进行调用时,Firebug显示GET响应返回302“临时”,旁边是一个红色X。GET响应的头具有一个具有OAuth授权的位置参数,当我复制和粘贴位置参数时,它会带我到正确的页面(告诉我下载XML )。

编辑:--我使用jQuery的$.get("URL", function(data){alert(data)});进行了尝试--也发生了同样的事情--没有警报,而是红色的GET请求和Firebug中的302。

基于这些信息,我认为我调用的数据库首先试图将我重定向到某个OAuth,然后返回一个访问数据库的授权URL。这是我应该使用的调用数据库,获取XML对象,然后做我的事情。AJAX似乎无法处理重定向,而是崩溃了。

但是,我不确定这是否正确,因为我尝试使用以下代码:

代码语言:javascript
复制
  else if (xmlhttp.readyState == 4 && xmlhttp.status == 302){
  alert("Hello 302!");
}
else {
  document.getElementById("test").innerHTML = "On state: " + xmlhttp.readyState + "<br />HTTP Status: " + xmlhttp.status;
}

它并没有给我一个警告,而是显示它处于状态4和状态0。我不明白它为什么会返回状态0。(编辑:修正了答案1中提到的错误,没有任何改变)

所以我的问题是:

  • 到底在做什么?
  • 0的状态是什么?为什么Firebug在控制台上给我一个X,为什么没有重定向?
  • 如何修复它?
  • ,一旦我修复了它,我是否能够抓取那个XML文件,或者还有什么需要做的?

F 213

编辑和更新:,这是一个跨站点脚本问题。我在外部服务器上运行了完全相同的脚本,并能够检索和解析包含查询结果的XML文档。唯一的障碍是弄清楚如何从外部服务器执行此操作。我可以访问外部服务器的配置,并将研究如何操作它以允许通过其他站点的数据库查询进行访问。

EN

Stack Overflow用户

回答已采纳

发布于 2012-06-25 23:20:03

因为它是ajax请求,所以不能从另一个域( http://en.wikipedia.org/wiki/Same_origin_policy )中提取数据

这里所能做的就是从您自己的服务器(相同的域)请求数据,并让它从外部db中为您提取数据。

编辑:这个响应已经超过3年了,现在使用的是现代浏览器(不包括IE < 10),您可以使用跨源资源共享( https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS )

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11163767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档