2014-09-21 2 views
0

Я использую jquery ajax для поиска чего-то с помощью стороннего api. Как только он что-то найдет, он вернет на экран кучу данных. То, что я пытаюсь сделать, это вызвать функцию search в зависимости от URL-адреса, и я не знаком с обработкой динамических URL-адресов с помощью Ajax.Вызов функции Ajax на основе URL-адреса

Например, если я искал shoes с помощью кнопки, URL-адрес должен измениться на localhost/search=shoes. Но если я на самом деле набираю тот же URL-адрес в адресной строке, он должен вызвать функцию search с запросом shoes.

Может ли кто-нибудь указать мне в правильном направлении, как я могу справиться с этим?

var search = function(query){ 
    $.ajax({ 
     url: 'ajax base url' + query, 
     data: { 
      q: query, 
      // etc 
     }, 
    }).done(function(){ 
     console.log('Do something with data'); 
    }); 
}; 

$('.btn-search').on('click', function(e){ 
     e.preventDefault(); 

     var data = $(this).text(); 
     search(data); 
}); 
+0

Трудно понять, что вы хотите: URL-адрес AJAX - любой произвольный действительный URL-адрес, но он должен находиться на том же сервере, на котором был загружен JS («такая же политика происхождения»). Выдача какой-либо информации из удаленного api на чужом сервере вызывает исключение в браузере. –

ответ

0

Вы можете проверить с регулярным выражением, если строка является полным URL или просто запрос, самый простой пример может использовать это регулярное выражение: localhost\/search=(.*).

Чтобы использовать это регулярное выражение следует использовать String.match функцию

После этого вы должны вызвать функцию, зависит от запроса с switch заявления

0

Вы можете установить URL просто

window.location = "localhost?search=shoes"; 

If вы заходите на эту страницу, вы можете проверить параметры URL-адреса в документе. Уже используя вспомогательную функцию GetURLParameter

$(document).ready(function() { 
    var search = GetURLParameter("search"); 

    if(search){ 

     console.log('Do something with data'); 
    } 
}); 

function GetURLParameter(sParam) 
{ 
    var sPageURL = window.location.search.substring(1); 
    var sURLVariables = sPageURL.split('&'); 
    for (var i = 0; i < sURLVariables.length; i++) 
    { 
     var sParameterName = sURLVariables[i].split('='); 
     if (sParameterName[0] == sParam) 
     { 
      return sParameterName[1]; 
     } 
    } 
}​ 
Смежные вопросы