使用jquery ajax传递值时的空值

时间:2015-01-13 07:42:28

标签: jquery ajax

我是第一次使用来自jscript ajax call的jquery ajax。我试图将两个值从jsp传递给jsp.Here是我试过的

JspPage1.jsp

$(function(){
var val1="Some value1";
var val2="Some value2";
$.ajax({url:"JspPage.jsp",
        type:'post',
        data: '{"val1":"' + val1 + '","val2":"' + val2 + '"}',
        success:function(result){
                //here i do nothing

            }});
});

JspPage.jsp

<%
String val1=request.getParameter("val1");
String val2=request.getParameter("val2");

System.out.println("val1 is:"+val1);
System.out.println("val2 is:"+val2);

%>

但是我在 JspPage.jsp 中获得了val1和val2变量的Null值。

我哪里错了?

2 个答案:

答案 0 :(得分:1)

$.ajax对您传递的数据进行字符串化。它不应该收到已经是JSON的东西。

简单地做

$.ajax({url:"JspPage.jsp",
    type:'post',
    data: {val1:val1, val2:val2},
    success:function(result){

请注意,您永远不应该通过连接字符串来构建JSON,因为它不会执行必要的转义(并且很繁琐)。

答案 1 :(得分:1)

我认为你在参数上有问题可以试试这个:

$(function(){
    var val1="Some value1";
    var val2="Some value2";
    $.ajax({
        url: "JspPage.jsp",
        type:"post",
        data: { valone: val1, valtwo: val2 },
        success:function(result){
                alert(result) ;
        }
    });
});

并在服务器端尝试:

String val1 = request.getParameter(&#34; valone&#34;); String val2 = request.getParameter(&#34; valtwo&#34;);