基于URL调用Ajax函数

时间:2014-09-21 15:36:23

标签: javascript jquery ajax

我正在使用jquery ajax使用第三方api搜索某些内容。一旦找到了什么,它就会向屏幕返回一堆数据。我要做的是根据URL调用search函数,我不熟悉使用Ajax处理动态URL。

例如,如果我通过按钮搜索shoes,则网址应更改为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 );
});

2 个答案:

答案 0 :(得分:0)

如果字符串是完整的网址或只是查询,您可以使用regexp进行检查,最简单的示例可以使用此正则表达式:localhost\/search=(.*)

要使用此正则表达式,您应使用String.match函数

之后你应该调用函数取决于switch语句

的查询

答案 1 :(得分:0)

您只需

即可设置网址
window.location = "localhost?search=shoes";

如果您访问此页面,可以使用GetURLParameter帮助函数检查document.ready中的URL获取参数

$( 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];
        }
    }
}​