JQuery AJAX с двумя доменами - PullRequest
5 голосов
/ 25 мая 2010

Хорошо, вот ситуация: у меня есть CMS с внешним хостом, которая прекрасно работает для 99% наших потребностей. Однако на более сложных вещах я внедряю свой собственный CSS + JS и делаю магию. Проблема, с которой я сталкиваюсь, заключается в загрузке простой HTML-страницы из вызовов jQuery.ajax (). Кажется, это работает в том смысле, что не выдается никаких предупреждений или ошибок; однако в моем обработчике успеха (который работает) ответ пуст!

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

Введенный JavaScript:

$(document).ready(function() {
    doui();
});
function doui() {
    $.ajax({
        url: 'http://apps.mydomain.com/css/feecalc/ui.htm',
        cache: false,
        success: ajax_createUI,
        charset: "utf-8",
        error: function(e) {
            alert(e);
        }
    });
}
function ajax_createUI(data, textStatus) {
    alert(data);
    $("#ajax-content").html(data);
}

Мой обработчик успеха ajax_createUI () вызывается, а textStatus - "success"; однако данные пусты.

Этот JS-файл находится @ http://apps.mydomain.com/css/js/feecalc.js, однако веб-сайт CMS (в который вводится JS) находится @ http://www.mydomain.com/

Я просто тупой или это ошибка, которая выглядит так, как будто она должна работать, но это не так?

Ответы [ 3 ]

5 голосов
/ 25 мая 2010

Это не ошибка, это особенность современных браузеров: Одинаковая политика происхождения Есть три способа обойти это. Глядя на то, как вы уже атаковали проблему, я смотрю на jsonp

1 голос
/ 25 мая 2010

Я думаю, что наиболее подходящим способом загрузки страницы является .load ()

Во-вторых, как сказал Ник, у вас проблемы с доменами. Одним из вариантов будет выполнение load () для страницы вашего сайта, которая выступает в качестве прокси-сервера для запроса нужной вам страницы.

Например: Вы запрашиваете .load (/myPage.aspx) и myPage.aspx запрос http://apps.natronacounty -wy.gov / css / feecalc / ui.htm и возвращаете его клиенту

0 голосов
/ 25 мая 2010

Вы можете запросить запрос через YQL (Yahoo! Query Language), что приведет к созданию файла JSONP (он даже поддерживает XMLP -> XML с функцией обратного вызова). Это может снизить вашу производительность, но Yahoo предоставляет быстрые серверы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...