AJAX-вызов на внутренний сервер работает в IE, но не в других браузерах - PullRequest
0 голосов
/ 03 февраля 2012

Я звоню на сайт сервера на наш внутренний сервер. Этот домен выглядит так:

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 Ответ

1 голос
/ 03 февраля 2012

Кажется, вы выполняете междоменные вызовы JavaScript.Целевой сервер должен установить HTTP-заголовок Access-Control-Allow-Origin.В вашем случае сервер http://server.domain должен установить заголовок наподобие:

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

Я не знаю, почему он работает для IE, возможно, это связано с вашими доменами безопасности, так как вы просто работаете в интрасети.

См. Другой пример:

...