将数据从javascript ajax函数发送到jsp

时间:2015-11-10 18:42:40

标签: javascript jquery ajax rest jsp

这就是我想要做的。在主页上...说/home.jsp,用户点击链接。我读取了链接的值,并在此基础上调用了一个RESTful资源,该资源又操纵数据库并返回响应。使用JavaScript可以实现与REST的预期交互。我已经能够从REST资源获取信息,但现在我想将该数据发送到另一个JSP ..比如/info.jsp。我无法做到这一点。

我试图在父Ajax调用的成功函数中进行另一个ajax调用,但什么也没发生。例如:

function dealInfo(aparameter){



    var requestData = {
            "dataType":    "json",
            "type"    :    "GET",
            "url"     :    REST resource URL+aparameter,
    };

    var request = $.ajax(requestData);
    request.success(function(data){

        alert(something from data); //this is a success

        //I cannot get into the below AJAX call
        $.ajax({

            "type": "post",
            "url": "info.jsp"
            success: function(data){
                alert("here");
                ("#someDiv").html(data[0].deviceModel);
            }

        });

我如何实现这一目标?我应该使用其他方法而不是两个Ajax调用吗?任何帮助表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用以下功能:

function dealInfo(aparameter) {
    $.ajax({
        url: 'thePage.jsp',
        type: "GET",
        cache: false,
        dataType: 'json',
        data: {'aparameter': aparameter},
        success: function (data) {

            alert(data); //or you can use console.log(data);

            $.ajax({
                url: 'info.jsp',
                type: "POST",
                cache: false,
                data: {'oldValorFromFirstAjaxCall': data},
                success: function (info) {
                    alert(info); //or you can use console.log(info);
                    $("#someDiv").html(info);
                }
            });

        }
    });
}

或者使AJAX调用同步:

function dealInfo(aparameter) {
    var request = $.ajax({
        async: false, //It's very important
        cache: false,
        url: 'thePage.jsp',
        type: "GET",
        dataType: 'json',
        data: {'aparameter': aparameter}
    }).responseText;

    $.ajax({
        url: 'info.jsp',
        type: "POST",
        cache: false,
        data: {'oldValorFromFirstAjaxCall': request},
        success: function (info) {
            alert(info); //or you can use console.log(info);
            $("#someDiv").html(info);
        }
    });
}

答案 1 :(得分:0)

通过这种方式,我正在使用。

“type”:“post”而不是type:'post'

也许它会有所帮助。试试吧。例如;

$.ajax({
      url: "yourURL",
      type: 'GET',
      data: form_data,
      success: function (data) {
      ...
      }
});