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

Тема в разделе "Другие языки", создана пользователем vaskotov, 26 апр 2010.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. vaskotov

    vaskotov Писатель

    Регистр.:
    26 янв 2010
    Сообщения:
    5
    Симпатии:
    0
    Добрый день всем!
    Помогите с кроссдоменным AJAX, плиз.
    Есть такая форма: http://2motora.ru/affiliate/form.html, где при выборе марки авто подгружаются модели, год и модификация двигателя методом 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.')') : 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 
    0models.lengthi++) {
                    var 
    val models[i];
                    var 
    text models[i];
                    $(
    '#ddlModel').append($('<option value=' val '>' text '</option>'));
                }
            }
        });
    }
    Вставляю форму на другой сайт: http://nntuning.ru/forma1.html. Там, естественно ничего не работает.
    Пишут, что эту проблему решает JSONP, но не могу найти подходящего примера - одна теория
     
  2. fastpars

    fastpars Создатель

    Регистр.:
    7 апр 2010
    Сообщения:
    23
    Симпатии:
    7
    попробуй - преписал через $.post
    PHP:
    $.post('http://2motora.ru/CarService.asmx/GetModelsByVendors', {"vendor":$('#ddlVendor').val()}, function(response) {

               
    // debugger; 
                
    var models = (typeof response.d) == 'string' ? eval('(' response.')') : 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 
    0models.lengthi++) { 
                    var 
    val models[i]; 
                    var 
    text models[i]; 
                    $(
    '#ddlModel').append($('<option value=' val '>' text '</option>')); 

    }, 
    'json');

     
  3. vaskotov

    vaskotov Писатель

    Регистр.:
    26 янв 2010
    Сообщения:
    5
    Симпатии:
    0
    То же самое
     
  4. Conwell

    Conwell

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

    vaskotov Писатель

    Регистр.:
    26 янв 2010
    Сообщения:
    5
    Симпатии:
    0
    Нет, это я post пробовал - вот и не работало. Сейчас вернул как было
     
  6. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    Попробуй не подгружать скрипт через js файл, а просто вставить его в тело html.
    (смотрел сейчас FireBug утверждает что Failed to load source for: _http://2motora.ru/affiliate/cascading.js)
    попробовал сам это сделать(вписать запрос в <script></script> вместо подключения через .js), запрос отработал вернуло несколь позиции по AstonMartin
     
    vaskotov нравится это.
  7. vaskotov

    vaskotov Писатель

    Регистр.:
    26 янв 2010
    Сообщения:
    5
    Симпатии:
    0
    Напиши код, какой у тебя сработал. Сейчас вставил функцию в <script></script> - не работает (http://nntuning.ru/forma1.html)
     
Статус темы:
Закрыта.