生成N个URL以发出AJAX请求

时间:2016-02-03 18:45:57

标签: javascript url-routing javascript-objects

创建后端的API后,我遇到了一个大问题。我有一个带有GET AJAX方法的表单来过滤和获得结果。它工作正常,但由于用户选择生成了网址,因此在使用或不使用每个过滤字段时,有N个选项无法创建每个组合。

以下是一个生成的网址示例:

http://example.com/api/?select1=choice1&select2=choice2&tag=word&active=true

此外,如果用户决定仅选择select1tag

我所做的实际上让我感到尴尬,因为我知道这不是一个好的解决方案(甚至不是很接近),甚至可视化它我只是无法想象如何让它工作但它看起来像这样:

select1 = $('#id_select1').find(":selected").text();
select2 = $('#id_select2').find(":selected").text();

if (select1 === "All" && select2 === "All") {
    url_get = '';
} else if (select1 === "All" && select2 !== "All") {
    url_get = 'select2=' + choice2
} else if (select2 === "All" && select1 !== "All"){
    url_get = 'select1=' + choice1
} else {
        url_get = 'choice1=' + select1 + '&' + 'choice2=' + select2
}

有没有更好的方法继续这个? 那边有任何Javascript Ninja吗?

2 个答案:

答案 0 :(得分:0)

一种选择是使用.serialize()https://api.jquery.com/serialize/

它将采用您的表单并转换名称/值对并将其序列化为字符串。

一个例子:

var url_get = $('#myform').serialize();

答案 1 :(得分:0)

即使PURE Javascript读取每个参数,即使此参数不包含任何内容,也可以从AJAX中获取URL

http://example.com/api/?select1=choice1&select2=&tag=word&active=

问题是,您如何阅读该网址

ASP Classic:

Hashsets

因此,在这种情况下,即使选择了选项并且没有理由“dinamic”构造URL,也应构建URL。

Var1 = Request("select1")
Var2 = Request("select2")
Var3 = Request("tag")
Var4 = Request("active")

如果你在服务器端读到这个变量将是空白的,并且没有暗示......

所以取决于你在这个结构之后想要做什么,否则就是这个背景......