如何用JavaScript获得后台传过来的参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用JavaScript获得后台传过来的参数相关的知识,希望对你有一定的参考价值。

参考技术A 通过request的getParameter的方法获取
1、通过request.getParameter("参数名")获取后台的值
2、通过<%=变量%>的方式赋给js变量
示例:
<script>
<%
String s2 = (String)request.getParameter("参数名");//获取后台参数给s2变量,<%%>表示这范围内是服务器解析的语言
%>
var s = '<%=s2%>';//输出s2给js变量s
</script>本回答被提问者采纳
参考技术B Ajax.responseText

JavaScript 神奇的参数

JS函数的参数,和其他语言区别非常大。它不在乎你传过来多少个参数,也不在乎传过来的参数是什么类型。即使你定义的函数只接受两个参数,你调用这个函数的时候可以传递一个、三个甚至不传参数。这是因为JavaScript中的参数在内部是用一个数组来表示的。函数接收到的永远是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。在函数体内我们可以通过arguments对象来访问这个数组来获得传递给函数的每一个参数。可以看下面的例子:

function sayHi(name,message) {
    alert("hello " + name + "," + message);
}
function sayHi() {
    alert("hello " + arguments[0] + "," + arguments[1]);
}

第一段代码是通过命名参数来传值, 第二段代码对第一段代码进行了重写。这个重写后的函数中不包含命名的参数。虽然没有使用name和message标识符,但函数的功能依旧。这个事实说明JavaScript函数的一个重要特点:命名的参数只提供便利,但不是必需的。另外,在命名参数方面,其他语言可能需要事先创建一个函数签名, 而将来的调用必须与该签名一致。但在JavaScript中, 没有这些条条框框,解析器不会验证命名参数。通过访问arguments对象的length属性可以获知有多少个参数传递给了函数。开发人员可以利用这一点让函数能够接收任意个参数并分别实现适当的功能。请看下面的例子:

function doAdd() {
if (arguments.length == 1) {
    alert(arguments[0] + 10);
} else if (arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
}
doAdd(10);    //20
doAdd(30,20);    //50

大家都知道JavaScript中没有重载,而利用上例中的特性就实现一个不太完美的重载,也算是弥补了JS的这一缺陷了。

arguments对象可以命名参数一起使用,并且arguments的值永远与对应命名参数的值保持同步。如下例所示:

function doAdd (num1, num2) {
    arguments[1] = 10;
    alert(arguments[0] + num2) ;
}

每次执行这个doAdd()函数都会重写第二个参数,将第二个参数的值修改为10。因为arguments对象中的值会自动反映到对应的命名参数,所以修改arguments[1],也就修改了num2,结果它们的值都会变成10。不过,这并不是说读取这两个值会访问相同的内存空间;它们的内存空间是独立的,但它们的值会同步。另外还要记住,如果只传入了一个参数,那么为arguments[1]设置的值不会反映到命名参数中。这是因为arguments对象的长度是由传入的参数个数决定的,不是由定义函数时的命名参数的个数决定的。而且没有传递值的命名参数num2 将自动被赋予undefined。这就跟定义了变量但又没有初始化一样。

以上是关于如何用JavaScript获得后台传过来的参数的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 神奇的参数

Extjs mvc 模式下怎么获得后台传过来的数据。请写详细了谢谢了

ajax得到后台传过来的参数后乱码

javascript怎么遍历后台request传过来的List对象

java后台接收前台传过来的参数只能是字符串类型吗?

ajax回调函数无法获取后台传过来的值(SSM框架),大神请指教!