将参数从一个页面发送到另一个页面时,我遇到了一个神秘的问题。
在其中一个ExtJs方法中,我通过POST将参数发送到另一个页面:
autoLoad : {
url : url_servlet+'form.jsp',
params: str,
scripts: true
}
但我不知道如何在JavaScript中获取此参数。 Okey我说,并在url中发送参数:
url : url_servlet+'form.jsp?ss=333'
在另一页:
function param(Name){
var Params = location.search.substring(1).split("&");
var variable = "";
for (var i = 0; i < Params.length; i++){
if(Params[i].split("=")[0] == Name){
if (Params[i].split("=").length > 1)
variable = Params[i].split("=")[1];
return variable;
}
}
return "";
}
var s =param('ss');
alert(s);
看到空警报。
在瘟疫中我尝试:window.location.search
并获取" "
。
什么错了?我读了几个例子,每个人都看到这样的代码。
答案 0 :(得分:1)
这里可能发生的事情是ExtJS将整个页面从远程位置加载到当前页面。
发生这种情况时,由于加载而运行的代码将在当前页面中执行(可能根本没有ss=xyz
参数)。
但是,您的form.jsp
应该有权访问查询字符串,并且可以将其注入到返回ExtJS的页面中。
另一种选择是在加载页面后以某种方式从JavaScript传递数据,但我不太了解ExtJS如何告诉你如何做到这一点。
答案 1 :(得分:0)
您无法从javascript获取POST参数。 POST参数是服务器,javascript在客户端..
如果是GET则可以使用parseUri library
var value = uri.queryKey['param'];
答案 2 :(得分:0)
你可以试试下面的功能吗?
function param(Name){
var Params = location.search.substring(1).split("&");
var variable = "";
for (var i = 0; i < Params.length; i++){
if(Params[i].split("=")[0] == Name){
variable = Params[i].split("=")[1];
return variable;
}
}
if(variable=="") return variable;
}
var s =param('ss');
alert(s);