使用 jquery ajax 传递值时为空值

Null value while pass values using jquery ajax

我是第一次使用 jscript jquery ajax ajax call.Simply 我试图将两个值从 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

我哪里错了?

$.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");