问题描述:我用ajax将数据库中得到的值传到jsp页面,利用IE可以得到值,但是利用Chrome得到的值是Unfefined .开始我以为是缓存问题,但是我对缓存做了相关设置,仍然不能解决。
一、js里面的部分代码如下 :
1.获得xmlrequest
[color=orange] var xmlrequest;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
xmlrequest = new XMLHttpRequest();
}
}[/color][color=blue][/color]
2.转到jsp页面的代码如下
[color=blue]function setProUniv(o) {
createXMLHttpRequest();
if (xmlrequest) {
//准备发送请求
var req = "/SSH05/changeUni?proId=" +o.proId + "&coId=" +o.coId+"&surl="+Math.random();
window.alert(req);
//打开请求
xmlrequest.open("get", req, true);
xmlrequest.send(req);
}
}[/color]
二、jsp页面部分代码如下
[color=blue]<!-- 显示省份 -->
proId="${province.id}" coId="${province.country.id }">
${province.name}
/c:forEach
[/color]
这里的${province.id}在jsp页面可以正确显示,但是把它当作参数传时
显示为undefined.
三、action里面部分代码如下。
[color=blue] HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request=ServletActionContext.getRequest();
response.setContentType("text/xml;charset=utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
String proId=request.getParameter("proId");
String coId=request.getParameter("coId");
System.out.println("proId"+proId);
System.out.println("coId"+coId);[/color]
在IE下运行时控制台可以将这两个参数打印出来,但是在Chrome下面运行时控制台没有把这两个参数打印出来。
程序运行之后 IE下面显示了得到了数据因为 window.alert(req); 会弹出一个提示框。
/SSH05/changeUni?proId=4&coId=1&surl=0.3469222103628817
而Chrome下面显示为
/SSH05/changeUni?proId=undefined&coId=undefined&surl=0.3105704408647314
本来我以为是Chrome得不到数据,但是我在后面加了另外一个随机的参数
&surl="+Math.random() 在Chrome 下面虽然前面两个参数都得不到,但是后面的那个随机生成的数每次都在变化,这是为什么呢?不是应该都为undefined才算是合理吗?当然我的本意当然是希望在Chrome下面也能成功得到参数。
不知道问题描述清楚没有?谁帮我解答一下吧,谢谢!