Помогите с кроссдоменным AJAX

Статус
В этой теме нельзя размещать новые ответы.

vaskotov

Писатель
Регистрация
26 Янв 2010
Сообщения
5
Реакции
0
Добрый день всем!
Помогите с кроссдоменным AJAX, плиз.
Есть такая форма: Для просмотра ссылки Войди или Зарегистрируйся, где при выборе марки авто подгружаются модели, год и модификация двигателя методом jQuery.ajax(:(
PHP:
function getModels() {
    $.ajax({
        type: "POST",
        url: "http://2motora.ru/CarService.asmx/GetModelsByVendors",
        data: "{ vendor: '" + $('#ddlVendor').val() + "' }",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            debugger;
            var models = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
            $('#ddlModel').attr('disabled', false);
            $('#ddlModel').change(getYears);
            $('#ddlModel').empty();
            $('#ddlModel').append($('<option value=\'\'>Модель</option>'));
            $('#ddlYear').empty();
            $('#ddlYear').append($('<option value=\'\'>Год выпуска</option>'));
            $('#ddlYear').attr('disabled', true);
            $('#ddlVolume').empty();
            $('#ddlVolume').append($('<option value=\'\'>Объём двигателя</option>'));
            $('#ddlVolume').attr('disabled', true);
            for (var i = 0; i < models.length; i++) {
                var val = models[i];
                var text = models[i];
                $('#ddlModel').append($('<option value=' + val + '>' + text + '</option>'));
            }
        }
    });
}
Вставляю форму на другой сайт: Для просмотра ссылки Войди или Зарегистрируйся. Там, естественно ничего не работает.
Пишут, что эту проблему решает JSONP, но не могу найти подходящего примера - одна теория
 
попробуй - преписал через $.post
PHP:
$.post('http://2motora.ru/CarService.asmx/GetModelsByVendors', {"vendor":$('#ddlVendor').val()}, function(response) {

           // debugger; 
            var models = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d; 
            $('#ddlModel').attr('disabled', false); 
            $('#ddlModel').change(getYears); 
            $('#ddlModel').empty(); 
            $('#ddlModel').append($('<option value=\'\'>Модель</option>')); 
            $('#ddlYear').empty(); 
            $('#ddlYear').append($('<option value=\'\'>Год выпуска</option>')); 
            $('#ddlYear').attr('disabled', true); 
            $('#ddlVolume').empty(); 
            $('#ddlVolume').append($('<option value=\'\'>Объём двигателя</option>')); 
            $('#ddlVolume').attr('disabled', true); 
            for (var i = 0; i < models.length; i++) { 
                var val = models[i]; 
                var text = models[i]; 
                $('#ddlModel').append($('<option value=' + val + '>' + text + '</option>')); 

}, 'json');
 
Чего-то у тебя не хватает в определениях переменных.
сразу при попытке смены марки выдает ошибку "getModels" а дальше скрипт работать не будет :) может в этом проблема?
посмотрел чуть дальше, а это же функция которая должна отрабатывать по onChange... где функция?! :)
а еще у тебя скрипт _http://2motora.ru/affiliate/cascading1.js не подгружается :) может его там нет или просто путь не тот?
 
Чего-то у тебя не хватает в определениях переменных.
сразу при попытке смены марки выдает ошибку "getModels" а дальше скрипт работать не будет :) может в этом проблема?
посмотрел чуть дальше, а это же функция которая должна отрабатывать по onChange... где функция?! :)
а еще у тебя скрипт _http://2motora.ru/affiliate/cascading1.js не подгружается :) может его там нет или просто путь не тот?

Нет, это я post пробовал - вот и не работало. Сейчас вернул как было
 
Попробуй не подгружать скрипт через js файл, а просто вставить его в тело html.
(смотрел сейчас FireBug утверждает что Failed to load source for: _http://2motora.ru/affiliate/cascading.js)
попробовал сам это сделать(вписать запрос в <script></script> вместо подключения через .js), запрос отработал вернуло несколь позиции по AstonMartin
 
Попробуй не подгружать скрипт через js файл, а просто вставить его в тело html.
(смотрел сейчас FireBug утверждает что Failed to load source for: _http://2motora.ru/affiliate/cascading.js)
попробовал сам это сделать(вписать запрос в <script></script> вместо подключения через .js), запрос отработал вернуло несколь позиции по AstonMartin
Напиши код, какой у тебя сработал. Сейчас вставил функцию в <script></script> - не работает (Для просмотра ссылки Войди или Зарегистрируйся)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху