Хорошо вот ситуация: у Меня есть внешне размещенный 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/
Я просто глуп, или действительно ли это - ошибка, что похоже, что это должно работать, но не?
Это не ошибка, это особенность современных браузеров: Та же политика происхождения Есть три способа обойти это. Глядя на то, как вы уже решили проблему, я бы посмотрел на jsonp
Я думаю, что наиболее подходящим методом для загрузки страницы является .load ()
Во-вторых, как сказал Ник, вы испытываете проблемы с междоменными доменами. Один из вариантов - выполнить load () для страницы вашего сайта, которая действует как прокси для запроса нужной страницы.
Например: Вы запрашиваете .load (/myPage.aspx) и myPage.aspx request http://apps.natronacounty-wy.gov/css/feecalc/ui.htm и возвращаете его клиенту
Хотя вы можете запросить запрос через YQL (Yahoo! Query Language), который приведет к файлу JSONP (он даже поддерживает XMLP -> XML с функцией обратного вызова). Это может снизить производительность, но Yahoo предоставляет быстрые серверы.