AJAX Ready State 4,但是空文本

时间:2011-04-19 13:57:25

标签: ajax http

我使用AJAX调用页面,请求搜索某些内容。但响应文本始终为空,尽管就绪状态为4。

function process() {
 var requestPage = "http://some.page/search.php";
 var xmlHTTP;
 var searchString = "test";

 if (window.XMLHttpRequest) {
  xmlHTTP = new XMLHttpRequest();
 } else {
  xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
 }

 var results;

 xmlHTTP.open("GET", requestPage + "?search=" + searchString, true);
 xmlHTTP.send();

 xmlHTTP.onreadystatechange = function() {
   results = xmlHTTP.responseText;
   alert("r: " + results + " rs: " + xmlHTTP.readyState + " st: " + xmlHTTP.status);
 }
}

我从中得到的结果是

r: rs: 2 st: 0
r: rs: 4 st: 0

因此,请求成功完成,但HTTP状态不是200. 但是:我使用WireShark跟踪请求,请求的结果包显示为状态200,甚至包含完整的请求结果,见下文:

7014    190.663287  some.page   local.pc    HTTP    HTTP/1.1 200 OK  (text/html)
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=xxx; Path=/xxx
Content-Type: text/html;charset=iso-8859-1
Content-Length: 3108
Date: Tue, 19 Apr 2011 13:05:41 GMT
<html>
<head>
<title>Search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="white">
...

因此;为什么当我的AJAX请求显然成功时,我不能获得状态200?

1 个答案:

答案 0 :(得分:0)

所以你的问题是你要求一个页面有不同的端口 相同的原始政策表示协议端口和主机应该是相同的 见
http://en.wikipedia.org/wiki/Same_origin_policyhttps://developer.mozilla.org/en/Same_origin_policy_for_JavaScript