从URL中获取任何url参数的最佳做法是什么?

时间:2015-07-20 17:10:58

标签: javascript jquery url

我很好奇,从URL中获取任何url参数的最佳做法是什么?

实施例

AcceptSocket()

目标是获取以下值:

  • assessmentId
  • classroomId

1。制作一个parseUrl函数

http://localhost:8080/BIM/teacher/reports/chapter-quiz/assignment?assessmentId=206a9246&classroomId=722bfadb

2。从隐藏的输入中获取

将此内容放入HTML页面

function parseUrl(url) {
    var urlParamSplit = url.split("?");

    if (urlParamSplit.length !== 2) {
        return "InvalidUrlNoParamsSet";
    }

    var paramsList = urlParamSplit[1].split("&");
    if (paramsList.length < 1) {
        return "InvalidUrlNoParamsFound";
    }

    var paramsObj = {};
    paramsList.forEach(function(item) {
        var keyValueArray = item.split("=");
        paramsObj[keyValueArray[0]] = keyValueArray[1];
    });

    return paramsObj;
}

var params = parseUrl(href);



console.log(params.assessmentId) // 206a9246
console.log(params.classroomId) // 722bfadb

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

如果还有其他方法,我应该考虑一下,请提出建议。

2 个答案:

答案 0 :(得分:1)

我认为第一种方法更强大,如果你有几个参数要从url中获取,或者你有一些动态生成的参数而不是第二种方法(动态参数),你必须循环并创建输入也是动态的。

短:使用第一种方法,如果您有几个参数来绘制或动态生成参数,如果您有较少的参数(静态和控制参数),请使用第二种方法。

了解更多解决方案/提示 this link &amp; this one 可能会对您有所帮助。

答案 1 :(得分:1)

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

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