具有多个参数的 XMLHttpRequest
XMLHttpRequest with multiple parameters
在我一直在使用的 Web 应用程序上,我一直在使用 xmlhttprequests 将单个参数传递给 Java servlet,如下所示:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'DCC?command=' + encodeURIComponent(command), true);
xhr.send(null);
问题是,我仍然不太理解语法,现在我需要用多个参数做一些类似的事情。这是怎么做到的?
您在上面的示例中传递的 URL 是:
'DCC?command=' + encodeURIComponent(command)
DCC
部分实际上是网页路径的一部分。它很短,因为它是一条相对路径。完全限定的路径看起来像 www.sitename.com/DCC
之后的部分(在 ?
字符之后)称为查询字符串。这是 URL 的一部分,其中包含您要传递给服务器的数据(在 GET 事务中),它遵循以下模式:
a=somevalue&b=anothervalue&c=yetanother
因此将“&varnameA=valueA”添加到该字符串以同时传递 command
和 varnameA
:
xhr.open('GET', 'DCC?command=' + encodeURIComponent(command)+"&varnameA=valueA",true);
您可以继续处理 &varname=value 字符串,直到您的查询大约为 2000 个字符,因为这是浏览器通常开始崩溃的地方,因为 URL 太长了。
请记住对值中的任何特殊字符进行编码(这就是 encodeURIComponent()
的用途),否则您会遇到一些奇怪的行为。这意味着您要为每个要传递给服务器的额外 variable/value 对附加类似 +"&varnameA="+encodeURIComponent("valueA")
的内容。
语法是:
xhr.open("GET", url, 真);
在 Url 中,您可以通过附加“&”
来传递多个参数
简单回答:
var url="index.php"+"?command="+cmd;
xhr.open("GET",url,true);
您可以添加更多参数,只需添加一个 ?每个变量名的前面。
您可以在发送调用中发送参数。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'DCC', true);
xhr.send(JSON.stringify(parameters));
在java端使用InputStreamReader
读取请求并反序列化对象。
在我一直在使用的 Web 应用程序上,我一直在使用 xmlhttprequests 将单个参数传递给 Java servlet,如下所示:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'DCC?command=' + encodeURIComponent(command), true);
xhr.send(null);
问题是,我仍然不太理解语法,现在我需要用多个参数做一些类似的事情。这是怎么做到的?
您在上面的示例中传递的 URL 是:
'DCC?command=' + encodeURIComponent(command)
DCC
部分实际上是网页路径的一部分。它很短,因为它是一条相对路径。完全限定的路径看起来像 www.sitename.com/DCC
之后的部分(在 ?
字符之后)称为查询字符串。这是 URL 的一部分,其中包含您要传递给服务器的数据(在 GET 事务中),它遵循以下模式:
a=somevalue&b=anothervalue&c=yetanother
因此将“&varnameA=valueA”添加到该字符串以同时传递 command
和 varnameA
:
xhr.open('GET', 'DCC?command=' + encodeURIComponent(command)+"&varnameA=valueA",true);
您可以继续处理 &varname=value 字符串,直到您的查询大约为 2000 个字符,因为这是浏览器通常开始崩溃的地方,因为 URL 太长了。
请记住对值中的任何特殊字符进行编码(这就是 encodeURIComponent()
的用途),否则您会遇到一些奇怪的行为。这意味着您要为每个要传递给服务器的额外 variable/value 对附加类似 +"&varnameA="+encodeURIComponent("valueA")
的内容。
语法是: xhr.open("GET", url, 真); 在 Url 中,您可以通过附加“&”
来传递多个参数简单回答:
var url="index.php"+"?command="+cmd;
xhr.open("GET",url,true);
您可以添加更多参数,只需添加一个 ?每个变量名的前面。
您可以在发送调用中发送参数。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'DCC', true);
xhr.send(JSON.stringify(parameters));
在java端使用InputStreamReader
读取请求并反序列化对象。