使用jquery ajax传递值时为空值

使用jquery ajax传递值时为空值,jquery,ajax,Jquery,Ajax,我是第一次从jscript ajax调用中使用jquery ajax。我只是尝试将两个值从jsp传递到jsp JspPage1.jsp $(function(){ var val1="Some value1"; var val2="Some value2"; $.ajax({url:"JspPage.jsp", type:'post', data: '{"val1":"' + val1 + '","val2":"' + val2 + '"}', s

我是第一次从jscript ajax调用中使用jquery ajax。我只是尝试将两个值从jsp传递到jsp

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

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

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

%>
JspPage.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

            }});
});
<%
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


我错在哪里?

$。ajax将字符串化传递的数据。它不应该接收已经是JSON的东西

干脆

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

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

我认为您在参数方面有问题,请尝试以下方法:

$(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) ;
        }
    });
});
在服务器端,尝试以下方式:

字符串val1=request.getParameter(“valone”);
字符串val2=request.getParameter(“valtwo”)

如果我按代码执行,即使页面不调用也意味着什么也不显示。如果我按“{”val1“:“+val1+”,“val2”:“+val2+”}”执行,它显示空指针异常,但当我处理数据时:{val1:val1,val2:val2}它甚至不调用页面。您复制并通过了这段代码吗?因为我有相同的代码工作抱歉!这段代码运行得很好。实际上我在获取val()时出错了。谢谢。