Javascript 从url获取任何url参数的最佳实践是什么?

Javascript 从url获取任何url参数的最佳实践是什么?,javascript,jquery,url,Javascript,Jquery,Url,我很好奇,从url获取任何url参数的最佳实践是什么 例子 http://localhost:8080/BIM/teacher/reports/chapter-测验/作业?评估ID=206a9246和教室ID=722bfadb 目标是抓住以下价值: 评估ID 学生室友 1.创建一个parseUrl函数 函数解析url(url){ var urlParamSplit=url.split(“?”); 如果(urlParamSplit.length!==2){ 返回“InvalidUrlNoPa

我很好奇,从url获取任何url参数的最佳实践是什么


例子
http://localhost:8080/BIM/teacher/reports/chapter-测验/作业?评估ID=206a9246和教室ID=722bfadb

目标是抓住以下价值:

  • 评估ID
  • 学生室友
1.创建一个parseUrl函数
函数解析url(url){
var urlParamSplit=url.split(“?”);
如果(urlParamSplit.length!==2){
返回“InvalidUrlNoParamsSet”;
}
var paramsList=urlParamSplit[1]。拆分(“&”);
if(参数列表长度<1){
返回“InvalidUrlNoParamsFound”;
}
var paramsObj={};
paramsList.forEach(函数(项){
var keyValueArray=item.split(“”);
paramsObj[keyValueArray[0]]=keyValueArray[1];
});
返回参数sobj;
}
var params=parseUrl(href);
console.log(params.assessmentId)//206a9246
console.log(params.classroomId)//722bfadb

2.从隐藏的输入中获取它 把这个放到HTML页面中

<input id="assessmentId" type="hidden" value="<c:out escapeXml="true" value="${param.assessmentId}" />" />
<input id="classroomId" type="hidden" value="<c:out escapeXml="true" value="${param.classroomId}" />" />




console.log($("#assessmentId").val()) // 206a9246
console.log($("#classroomId").val())  // 722bfadb

console.log($(“#assessmentId”).val())//206a9246
console.log($(“#classroomId”).val())//722bfadb

到目前为止,我已经尝试了两种方法,它们都提供了我想要的数据,但我不确定应该使用哪种方法


如果有其他的方法,我应该考虑,请注意。

< P>我认为如果你有几个参数从URL抓取,第一种方法更强大,或者如果你有一些动态生成的参数而不是第二种方法(动态PARAMs),那么你必须动态地循环和创建输入。 Short:如果要绘制多个参数或动态生成的参数,请使用第一种方法;如果参数较少(静态和可控参数),请使用第二种方法


有关更多解决方案/想法,&可能会对您有所帮助。

如果http请求要更改/添加服务器中的内容,您应该使用POST请求(而不是您的情况)


如果http请求要使用客户端提供的某些数据获取某些内容,则应使用GET query参数将数据传递给服务器

第二个方法是否使用第一个方法的函数?@Waflix:不,不是。它只是一个jQuery选择器,我建议使用URL解析器,比如第一种方法,肯定更好。第二个确实需要一些服务器端处理,您向我们展示的不是HTML页面。
<input id="assessmentId" type="hidden" value="<c:out escapeXml="true" value="${param.assessmentId}" />" />
<input id="classroomId" type="hidden" value="<c:out escapeXml="true" value="${param.classroomId}" />" />




console.log($("#assessmentId").val()) // 206a9246
console.log($("#classroomId").val())  // 722bfadb