首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在成功响应之后,通过ajax将值传递到第二个jsp页面

在成功响应之后,通过ajax将值传递到第二个jsp页面
EN

Stack Overflow用户
提问于 2015-07-26 07:23:13
回答 3查看 3.7K关注 0票数 0

我试图从page1.jsp向java文件发送ajax请求。根据响应,我将重定向到jsp页面。也就是说:如果响应是“成功的”,我希望与参数"data“一起重定向到CreateBluemixMonkey.jsp页面。是否有可能通过下面的代码。根据我的理解,因为"POST“方法被重定向到一个java类,一旦返回控件,CreateBluemixMonkey.jsp中就不会识别page1.jsp中的变量。请查找第1.jsp页中的代码如下:

代码语言:javascript
复制
$(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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-26 08:29:29

尝试使用URL传递数据,但是如果数据短,这种技术是好的。ELse您将得到最大查询长度错误。

代码语言:javascript
复制
window.location = '/player_detail?data=' + data;
票数 0
EN

Stack Overflow用户

发布于 2015-07-26 07:31:17

一旦执行了window.location.href = successUrl;,jsp页面将被重定向到带有新请求和响应对象的CreateBluemixMonkey.jsp。因此,所有数据都将被垃圾收集。您可以尝试将数据存储在session中,因为session可以对所有页面都可用。

你可以在tracking.htm上读到

票数 1
EN

Stack Overflow用户

发布于 2015-07-26 10:13:17

生成datas的6行代码非常不可靠:

  • 没有声明values,如果在values[ele]上没有失败,这仅仅是因为全局作用域包含一个您正在变异的对象values
  • 一旦您修复了这个问题,datas将如下所示:"username": "ambikanair","password": "wnt#*@$",}。你错过了开头的{,还有一个落后的,。如果服务器希望获得有效的JSON,那么它将感到失望。
  • 你也没有逃脱数据。您应该养成正确地这样做的习惯,因为在很多情况下,无法逃脱的事情可能是一个安全漏洞。在这种情况下,安全性不是问题,因为恶意用户无论如何都可以发布他们想要的任何东西,所以您不应该依赖他们不发布无效的JSON等等。但是除了恶意攻击之外,还有可能出现带有奇怪字符的字符串意外地破坏了它。请记住,密码字段可能包含非字母数字字符。例如,如果密码为my"passwordmypassword\,则datas将不是有效的JSON。

转义字符串可能很棘手,但通常不必自己动手。在这种情况下,您应该使用函数JSON.stringify,它是javascript语言的一部分。我会把这些行改写如下:

代码语言: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字符串,其中包含不应该存在的字段,但是用户只需在用户名和密码下输入数据就可以做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31634660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档