我试图从page1.jsp向java文件发送ajax请求。根据响应,我将重定向到jsp页面。也就是说:如果响应是“成功的”,我希望与参数"data“一起重定向到CreateBluemixMonkey.jsp页面。是否有可能通过下面的代码。根据我的理解,因为"POST“方法被重定向到一个java类,一旦返回控件,CreateBluemixMonkey.jsp中就不会识别page1.jsp中的变量。请查找第1.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发布于 2015-07-26 08:29:29
尝试使用URL传递数据,但是如果数据短,这种技术是好的。ELse您将得到最大查询长度错误。
window.location = '/player_detail?data=' + data;发布于 2015-07-26 07:31:17
一旦执行了window.location.href = successUrl;,jsp页面将被重定向到带有新请求和响应对象的CreateBluemixMonkey.jsp。因此,所有数据都将被垃圾收集。您可以尝试将数据存储在session中,因为session可以对所有页面都可用。
你可以在tracking.htm上读到
发布于 2015-07-26 10:13:17
生成datas的6行代码非常不可靠:
values,如果在values[ele]上没有失败,这仅仅是因为全局作用域包含一个您正在变异的对象values。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字符串,其中包含不应该存在的字段,但是用户只需在用户名和密码下输入数据就可以做到这一点。
https://stackoverflow.com/questions/31634660
复制相似问题