在我一直在工作的网络应用上,我一直在使用xmlhttprequests将单个参数传递给Java servlet,如下所示:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'DCC?command=' + encodeURIComponent(command), true);
xhr.send(null);
问题是,我仍然不能理解语法,现在我需要用多个参数做类似的事情。这是怎么做到的?
答案 0 :(得分:0)
您在上面示例中传递的网址是:
'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()
正在使用的那个),否则您将获得一些奇怪的行为。这意味着您要为要传递给服务器的每个其他变量/值对附加+"&varnameA="+encodeURIComponent("valueA")
之类的内容。
答案 1 :(得分:0)
语法是: xhr.open(“GET”,url,true); 在Url中,您可以通过附加“&”
来传递多个参数答案 2 :(得分:0)
简单回答:
null
你可以添加更多参数,你只需要添加一个?每个变量名称的前面。
答案 3 :(得分:0)
您可以在发送呼叫中发送参数。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'DCC', true);
xhr.send(JSON.stringify(parameters));
java端的使用InputStreamReader
来读取请求并反序列化对象。