Ajax вызывает поддомен
у меня есть один сервер, расположенный на example.com запуск apache, обслуживание моих статических html-файлов.
у меня также есть служба json, расположенная по адресу api.example.com запуск python с cherrypy.
запросы пользователя example.com и получить индекс html-страницы. На этой странице Я делаю запрос ajax с jquery в службу json. document.domain
возвращает example.com
$.ajax({
type: 'GET',
url: 'http://api.example.com/resource/',
dataType: 'json',
success: successCallback,
error: errorHandler
});
однако я не вижу тело ответа для запроса ajax в firebug. Это заставляет меня верить что браузер (FF) не поддерживает это.
каковы наилучшие методы для достижения этого? Я бы предпочел не использовать проксирование на бэкэнде apache для example.com если возможно.
5 ответов
вы также можете использовать JSONP путем добавления обратного вызова=? до конца url-адреса. jQuery уже знает, как обрабатывать эти типы запросов, но для обработки параметров обратного вызова требуются некоторые изменения на стороне сервера.
AJAX запрос поддерживается только в том же домене. Однако вы можете написать HTTP-прокси на предпочитаемом языке сценариев и вызвать этот http-прокси. Вы можете проверить это маленькое учебник на прокси AJAX, написанном на php.
попробуйте изменить свой домен в поддомене, например
<script type="text/javascript">
document.domain = 'example.com';
</script>
если не работает, измените свой документ.домен на странице домена тоже.
насколько я знаю, вы не можете делать AJAX кросс-домен.
почему междоменный Ajax является проблемой безопасности?
хотя я думаю, вы могли бы сделать iframe обходной путь
использовать документ.домен, чтобы сделать домен доменом верхнего уровня вместо поддомена.
document.domain="example.com"
Это подробно описано на MDN.