Общая функция для асинхронного получения URL-адреса в JavaScript без использования сторонних библиотек, таких как jQuery?

Возможный дубликат:
Маленькая библиотека JavaScript Ajax

Я программирую библиотеку, которой нужна функция для асинхронной загрузки URL-адресов. Мне понадобится точно такая же функциональность $.get, за исключением того, что я не хочу, чтобы jQuery была зависимостью моей библиотеки только для одной функции. Что такое автономный фрагмент, который позволяет это сделать?

Я пробовал несколько вещей, но большинство из них где-то сломаны. Например, самое сложное, что я смог найти, привело бы к ошибке Origin <url> is not allowed by Access-Control-Allow-Origin в Chrome.


person MaiaVictor    schedule 15.12.2012    source источник
comment
Нечто подобное показано здесь: code.google.com/edu/ajax/ tutorials/ajax-tutorial.html (возможно, с небольшим изменением, позволяющим принимать функцию обратного вызова в качестве параметра).   -  person nnnnnn    schedule 15.12.2012
comment
вы пытаетесь получить из другого домена?   -  person zb'    schedule 15.12.2012
comment
Да, я. Я читаю по этой ссылке, там написано, что мне нужен локальный прокси, и я понятия не имею, как мне это сделать.   -  person MaiaVictor    schedule 15.12.2012


Ответы (1)


Вам нужно использовать базовый вызов Ajax. Посмотрите любой учебник по объекту XMLHttpRequest. НО проблема в том, что вы пытаетесь сделать междоменный вызов. Это невозможно из-за политики одинакового происхождения.

В современных браузерах вы можете сделать запрос CORS, но запрашиваемый сервер должен его поддерживать.

Другой вариант — запуск локального прокси [означает, что у вас должно быть языковое приложение на стороне сервера]

Третий вариант — использовать такой сервис, как каналы Yahoo с вызов jsonp.

person epascarello    schedule 15.12.2012