XMLHttpRequest межсайтовый скриптинг на одном сервере, но на другом порту - PullRequest
5 голосов
/ 12 января 2011

с помощью XMLHttpRequest невозможно открыть соединение с документом в другом домене, отличном от того, где находится сама страница.

а как насчет других портов?

например у меня естьвеб-сервер, запущенный на моей машине, прослушивает порт 80, поэтому веб-адрес будет выглядеть следующим образом:

http://localhost:80/mypage.html

, и у меня есть другой веб-сервер, работающий на локальном хосте, который предназначен для обработки запросов ajax, но прослушивает другой порт.поэтому JavaScript в mypage.html будет выглядеть так:

var xmlhttprequest = new XMLHttpRequest(); 
xmlhttp.open("GET", "http://localhost:1234/?parameters", true); 
xmlhttp.send();

это будет работать?или это также даст исключение безопасности?

Ответы [ 2 ]

8 голосов
/ 12 января 2011

Использование другого порта действительно считается межсайтовым скриптингом.

Существует несколько известных способов сделать звонок (вы всегда можете отправить данные) и использовать ответ (это то, что выобычно не может выполняться с ограничениями анти-xss), включая JSONP и использование на странице iframe для загрузки данных.

5 голосов
/ 12 января 2011

Это не пойдет, так как практически все еще на другом сервере (по крайней мере, на другом экземпляре сервера, который может не находиться под вашим контролем).

Вы можете добавить Access-Control-Allow-Origin:http://yourdomain:1234/ в заголовках, Google для перекрестного общего доступа к ресурсам.Это относительно новый, хотя, не все браузеры знают об этом.Или вы можете использовать jQuery (подробнее на http://softwareas.com/cross-domain-communication-with-iframes).

...