Ajax jQuery с двумя доменами

Хорошо вот ситуация: у Меня есть внешне размещенный 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 является "успехом"; однако данные пусты.

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

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

5
задан Andrew Burns 25 May 2010 в 20:47
поделиться

3 ответа

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

5
ответ дан 14 December 2019 в 13:28
поделиться

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

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

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

1
ответ дан 14 December 2019 в 13:28
поделиться

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

0
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: