Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有多个参数的XMLHttpRequest_Javascript_Java_Servlets_Xmlhttprequest - Fatal编程技术网

Javascript 具有多个参数的XMLHttpRequest

Javascript 具有多个参数的XMLHttpRequest,javascript,java,servlets,xmlhttprequest,Javascript,Java,Servlets,Xmlhttprequest,在我一直在使用的web应用程序中,我使用xmlhttprequests将单个参数传递给Java servlet,如下所示: var xhr = new XMLHttpRequest(); xhr.open('GET', 'DCC?command=' + encodeURIComponent(command), true); xhr.send(null); 问题是,我仍然不能真正理解语法,现在我需要对多个参数做一些类似的事情。这是如何做到的?在上面的示例中,您传递的URL是: 'DCC?comm

在我一直在使用的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”,以传递
命令和
varnameA

xhr.open('GET', 'DCC?command=' + encodeURIComponent(command)+"&varnameA=valueA",true);
您可以继续添加&varname=value字符串,直到查询长度达到2000个字符左右,因为URL太长,浏览器通常会在这一点上开始出错。
记住对值中的任何特殊字符进行编码(这就是
encodeURIComponent()
的用途),否则会出现一些奇怪的行为。这意味着您要为要传递给服务器的每个附加变量/值对追加类似
+“&varnameA=“+encodeURIComponent(“valueA”)

语法为: xhr.open(“GET”,url,true); 在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
读取请求并反序列化对象。

我相信您的意思是
&
,是吗?而且你仍然想进行URI编码。