生成 N 个 url 以发出 AJAX 请求
Generating N urls to make AJAX requests
我在创建后端的 API 后遇到了一个大问题。我有一个带有 GET AJAX 方法的表单来过滤和获取结果。它工作正常,但由于 url 是从用户选择生成的,因此在使用或不使用每个过滤器字段时,我无法创建 N 个选项。
下面是一个生成的 url 的示例:
http://example.com/api/?select1=choice1&select2=choice2&tag=word&active=true
此外,如果用户决定仅选择select1
和tag
我所做的实际上让我感到尴尬,因为我知道这不是一个好的解决方案(甚至没有接近),甚至要想象它,我也无法想象如何让它工作,但它看起来像这样:
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忍者吗?
一种选择是使用 .serialize()
: https://api.jquery.com/serialize/
它将采用您的表单并转换名称/值对并将其序列化为字符串。
举个例子:
var url_get = $('#myform').serialize();
从 AJAX 获取 URL 中的 mehotd,即使 PURE Javascript 读取每个参数,即使这个参数不包含任何内容
http://example.com/api/?select1=choice1&select2=&tag=word&active=
问题是,你如何阅读该网址
ASP 经典:
Var1 = Request("select1")
Var2 = Request("select2")
Var3 = Request("tag")
Var4 = Request("active")
因此,在这种情况下,即使选择了选项,您也应该构造URL,并且没有理由"dinamic"构造URL。
function send() {
var1 = form.select1.value;
var2 = form.select2.value;
var3 = form.tag.value; //in the case is an option
var4 = form.active.value; //same as before
URL = "http://example.com/api/?select1="+var1+"&select2="+var2+ "&tag="+var3+"&active="+var4;
(AJAX object).Open(GET, URL, True); //True is Async
(AJAX object).onreadystatechange = function() {
if ((AJAX object).readyState == 4 && (AJAX object).status == 200) {
//something
}
}
ajax.send(null); //Null since GET method
}
如果您在服务器端阅读,则此变量将为空白,并且没有任何含义...
所以取决于你在这次构造之后想做什么,否则这个的背景......
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成