对内部服务器的AJAX调用在IE中工作,但在其他浏览器中不起作用

时间:2012-02-03 09:54:24

标签: ajax internet-explorer firefox

我在内部服务器上调用服务器站点。该域名如下所示:

http://server.domain:12345/x.html

现在,使用IE这个工作正常,我正在获取数据。 (我的问题是IE在第一次电话会议后永远缓存网站,但没关系)。

现在,如果我试图在Firefox中做同样的事情,它将无法正常工作,在Google Chrome中也是如此。

Firebug说:

Answer-Header

Connection  Keep-Alive
Content-Length  109
Content-Type    text/html; charset=UTF-8
Keep-Alive  timeout=5000
Server  AbWeb Version SRSG 1.34
Set-Cookie  sessionkey=80da7dfe-1c9c-4460-9592-3ce55cecb379

Request-Header

Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip, deflate
Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Connection  keep-alive
Host    server.domain:12345
Origin  http://otherserver.domain
Referer http://otherserver.domain/test/
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0

Chrome说:

X XMLHttpRequest cannot load http://server.domain:12345/x.html. Origin http://otherservere.domain is not allowed by Access-Control-Allow-Origin.
server.domain:12345/x.html

X Failed to load resource

1 个答案:

答案 0 :(得分:1)

您似乎在执行跨域JavaScript调用。目标服务器必须设置Access-Control-Allow-Origin HTTP标头。在您的情况下,服务器http://server.domain必须设置如下标题:

Access-Control-Allow-Origin: http://otherserver.domain

我不知道为什么它适用于IE,它可能与您的安全域有关,因为您只是在Intranet中工作。

见另一个例子: