Вопрос
Я хотел бы сделать вызов Ajax на другой сервер (тот же домен и коробка, просто другой порт.) Например
Моя страница
http://localhost/index.html
Я хотел бы сделать запрос на получение ajax:
http://localhost:7076/?word=foo
Я получаю эту ошибку:
Access to restricted URI denied (NS_ERROR_DOM_BAD_URI)
Я знаю, что нельзя сделать ajax-запрос к другому домену, но, кажется, здесь тоже были разные порты?есть ли обходные пути?
Решение
Имейте определенную страницу на вашем порту 80, прокси-сервер запрашивает другой порт.Например:
http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo
Обратите внимание на кодировку URL-адреса последнего значения аргумента строки запроса.
Другие советы
Вы можете использовать JSONP.Здесь вы указываете обратный вызов с запросом, ответ вашего ajax-запроса оборачивается именем функции обратного вызова.Вместо использования XmlHttpRequest вы вставляете тег в HTML-документ с URL-адресом.Затем, когда ответ получен, вызывается функция обратного вызова, передавая данные в качестве параметра.
Проверь это Сообщение блога для примера
Это ограничение браузера.Все вызовы JavaScript должны быть направлены на тот же сервер и порт, что и домашний скрипт.Для этого потребуется что-то на стороне сервера.И.Е.иметь процесс в localhost
переслать запрос на localhost:7076
.
Это неприятно, но это необходимо...По сути, вам нужно будет проксировать ваш запрос AJAX через локальный прокси - какой-нибудь серверный скрипт/страницу/что угодно в том же домене, в котором вы находитесь - принять вызов и перенаправить его на другой ресурсный сервер - сторона.Возможно, вы могли бы использовать некоторые трюки с IFRAME, но я не думаю, что они работают очень хорошо... хотя это может быть неправильно, прошло некоторое время.