如何基于数据构造Pretty URL实现路径参数AJAX请求
构造路径式美观URL的实现方案
你当前的写法会让jQuery自动把参数拼接成?key=value格式的查询字符串,要实现/data1/data2/data3的路径型URL,直接把参数按顺序拼接到请求URL末尾即可,不需要通过data字段传参。
具体实现代码
// 提前确保data1、data2、data3三个变量已完成赋值 const pathParams = [data1, data2, data3].map(param => encodeURIComponent(param)); const requestUrl = 'https://mywebsite.com/admin/leads/count/' + pathParams.join('/'); $.ajax({ url: requestUrl, type: 'GET', dataType: "json", async: false, success: function(data){ $("#leads_count").val(data); leadsCtr = data; } });
注意事项
- 必须用
encodeURIComponent处理每个参数值:如果参数中包含/、空格、中文、?等特殊字符,不做编码会导致URL路由匹配错乱。 - 原代码中
contentType: "application/x-www-form-urlencoded"配置可以删除:这个配置是用来设置POST请求请求体格式的,GET请求没有请求体,该配置不生效。 - 需要同步配置后端路由:后端需要对应配置
/admin/leads/count/:p1/:p2/:p3格式的路径参数接收规则,否则请求会返回404错误。
内容的提问来源于stack exchange,提问作者AlfredC
相关产品推荐
相关产品推荐

