我正在尝试向page1.jsp中的java文件发送ajax请求。根据响应,我将重定向到jsp页面。那就是:如果回复是"成功"我想重定向到CreateBluemixMonkey.jsp页面以及参数" data"。这可能通过以下代码。根据我的理解,自" POST"方法被重定向到java类,一旦返回控件,page1.jsp中的变量将无法在CreateBluemixMonkey.jsp中被识别。请在下面的page1.jsp中找到代码:
$(document).ready(function(){
var userInfo = ['username','password' ];
for (var i=0; i < userInfo.length; i++) {
var ele = userInfo[i];
values[ele] = $('#' + ele).val();
datas = datas + '"'+ ele + '"' + ': ' + '"' + values[ele] + '"' +',';
}
datas = datas + "}";
$('#submit-button').click(function(){
$.ajax({
type: "post",
url: "./api/v2/chaos",
data: datas,
success: function(msg){
var successUrl = "CreateBluemixMonkey.jsp";
window.location.href = successUrl;
},
error: function(jqXHR,error, errorThrown) {
$('#output').html( jqXHR.status+ " " +jqXHR.responseText);
}
}) //ajax-close
}) //click-function
}) //document-ready
答案 0 :(得分:1)
执行window.location.href = successUrl;
后,jsp页面将被重定向到CreateBluemixMonkey.jsp
,并带有新的请求和响应对象。因此,所有数据都将被垃圾收集。您可以尝试在session
中存储数据,因为session
可供所有网页使用。
您可以在http://www.tutorialspoint.com/jsp/jsp_session_tracking.htm
了解相关信息答案 1 :(得分:1)
生成datas
的6条线非常狡猾:
values
尚未声明,如果这在values[ele]
上没有失败,那只是因为全局范围包含一个对象values
,您和&#39} #39;重新变异。datas
将如下所示:"username": "ambikanair","password": "wnt#*@$",}
。您错过了开头{
,并且您有一个尾随,
。如果服务器期望有效的JSON,它将会失望。my"password
或mypassword\
,则datas
将无效JSON。转义字符串可能很棘手,但您通常不必自己动手操作。在这种情况下,您应该使用函数JSON.stringify
,它是javascript语言的一部分。我按如下方式重写这些行:
var values = {};
for (var i=0; i < userInfo.length; i++) {
var ele = userInfo[i];
values[ele] = $('#' + ele).val();
}
var datas = JSON.stringify(values);
*作为一个例子,如果这是一个问题,可以想象用户输入密码my password", "anotherfield": {"success": true, "data": "ncosneconoabneonvosief"}, "yetanotherfield": "yetanothervalue
。您最终会得到一个完全有效的JSON字符串,其中包含不存在的字段,但用户只需在用户名和密码下输入数据即可。
答案 2 :(得分:0)
尝试使用URL传递数据,但如果数据很短,这种技术很好 。否则,您将获得最大查询长度错误。
window.location = '/player_detail?data=' + data;