Аякс и ограниченный URI - PullRequest
       17

Аякс и ограниченный URI

2 голосов
/ 11 сентября 2008

Я хотел бы сделать ajax-вызов на другой сервер (тот же домен и ящик, просто другой порт). например,

Моя страница

http://localhost/index.html

Я бы хотел запросить ajax:

http://localhost:7076/?word=foo

Я получаю эту ошибку:

Access to restricted URI denied (NS_ERROR_DOM_BAD_URI) 

Я знаю, что вы не можете сделать ajax-запрос к другому домену, но, похоже, это также включало разные порты? есть ли обходные пути?

Ответы [ 4 ]

4 голосов
/ 11 сентября 2008

У определенной страницы на вашем порту 80 запросы прокси сервера к другому порту. Например:

http://localhost/proxy?port=7076&url=%2f%3fword%3dfoo

Обратите внимание на кодировку URL в последнем значении аргумента строки запроса.

1 голос
/ 11 сентября 2008

Вы можете использовать JSONP. Здесь вы указываете обратный вызов с запросом, а ответ от вашего запроса ajax оборачивается именем функции обратного вызова. Вместо использования XmlHttpRequest вы вставляете тег в документ HTML с URL-адресом. Затем, когда ответ получен, вызывается функция обратного вызова, передавая данные в качестве параметра.

Проверьте это сообщение в блоге для примера

0 голосов
/ 11 сентября 2008

Это отстой, но это необходимо ... По сути, вам нужно прокси-запрос AJAX через локальный прокси - какой-нибудь серверный скрипт / страницу / что угодно в том же домене, на котором вы находитесь - получите вызов и переадресация на другой ресурс на стороне сервера. Могут быть некоторые трюки с IFRAME, которые вы могли бы сделать, но я не думаю, что они работают очень хорошо ... хотя, может быть, и ненадолго.

0 голосов
/ 11 сентября 2008

Это ограничение браузера. Все вызовы javascript должны выполняться на одном сервере и с портом, в котором находится сценарий. Для этого потребуется что-то на стороне сервера, чтобы обойти. И.Е. иметь процесс на localhost переслать запрос на localhost:7076.

...