2011-01-04 5 views
2

У меня есть вход с целью быть частью поисковой системы, на которой я использую jQuery, чтобы предварительно фильтровать строку поиска, удаляя запрещенные символы до тех пор, пока другие вещи. Недавно мне пришлось изменить URL-адрес веб-сайта и использовать PHP для печати переменной, которая указывала бы URL-адрес для ajax-запросов (как я делал раньше, за исключением того, что теперь обычные и ajax-запросы имеют разные URL-адреса), и я обнаружил проблему, которая Я не могу понять, что это.jQuery ajax не загружается

В принципе, запрос ajax не работает (никаких действий и никакого запроса на Firebug вообще нет). Пробовал все возможные способы (декларация внутри funcion, переданный как аргумент и т. Д.), Чтобы рассказать моему сценарию url, который я хотел, но он работает только со старым url (даже запрос ajax никогда не вызывается).

Так что я хочу, чтобы вы проверили его и посмотрели, не нашли ли вы что-то не так.

Вот код: «согласно» переменная, содержащая URL, которым печатает exacly то, что я хочу, когда я называю его в поисках функции(), единственное, что делает:

$(function() { 

    $('form#search-form').submit(function(e) { search(e, acc); }); 
    $('a#search-submit').click(function(e) { search(e, acc); }); 

}); 

function search(e, l) 
{ 
    e.preventDefault(); 

    var t = $('#search-text input[name="search-text"]').val(); 
    //var l = $('#nav-ul li.sel a').attr('href'); 

    $.ajax({ 
     type: 'POST', 
     url: l+'format_search_string', 
     data: 's='+t, 
     cache: false, 
     dataType: 'json', 
     success: function(response) 
     { 
      if (response.status == 'true') 
       window.location = $('#search-submit').attr('href')+'/s:'+response.string; 
      else 
       jQuery.facebox('<p class="facebox-notice">Necessita preencher o campo da pesquisa</p>'); 
     } 
    }); 
} 

редактировать ничто не является запросом ajax (вообще не называется). Если я использую старый URL-адрес, он работает, но странно, что с новым URL-адресом должен быть сделан хотя бы вызов ajax.

Код находится на одном сервере и в домене, и ничего не изменилось, просто URL-адрес запросов.

нормальный запрос:

http://category.domain.com/ 

запрос Ajax:

http://www.domain.com/category 
+0

Является ли приведенный выше код размещенным на том же сервере, только код базы данных перемещен на другой сервер? – ehudokai

+0

Где находится 'acc'? – lonesomeday

+0

@ehudokai & @lonesomeday, post updated – yoda

ответ

2

Звук, как вы запрашиваете из другого домена. И это не допускается.

Посмотрите same-origin-policy

Только JSONP позволяет запросы межсайтовый.

также рассмотрим другой SO вопрос/ответ: Same Origin Policy - AJAX & using Public APIs

+0

Спасибо, не знал, что я не могу делать запросы от одного поддомена к другому. Ура! – yoda

0

Если вы переместили свой бэкенд на другой сервер. попробуйте изменить свой запрос на тип jsonp, а не только json.

+0

нет, я не менял сервер – yoda

Смежные вопросы