基于URL调用Ajax函数

Call Ajax Function Based on URL

本文关键字:函数 Ajax 调用 URL 基于      更新时间:2023-09-26

我使用jquery ajax来搜索使用第三方api的东西。一旦它发现了什么,它就会向屏幕返回一堆数据。我想做的是根据URL调用search函数,我不熟悉使用Ajax处理动态URL。

例如,如果我通过按钮搜索shoes,则URL应该更改为localhost/search=shoes。但是,如果我真的在地址栏中键入了相同的URL,那么它应该使用shoes的查询来调用search函数。

有人能给我指一个正确的方向,告诉我如何处理这件事吗?

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 );
});

您可以使用regexp检查字符串是完整的url还是只是查询,最简单的例子可以使用此regex:localhost'/search=(.*)

要使用此regexp,您应该使用String.match函数

之后,您应该根据带有切换语句的查询来调用函数

您可以通过简单的设置URL

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

如果您访问此页面,您可以在文档中检查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];
        }
    }
}​