【问题标题】:How to pass data to AJAX call如何将数据传递给 AJAX 调用
【发布时间】:2013-08-09 06:23:21
【问题描述】:

谁能告诉我如何将数据传递给进行 AJAX 调用的 jsp?这就是我正在尝试的:

这是我的 AJAX 调用:

     $.get("gridedit.jsp", { before: "row", time: "2pm" })
               .done(function(data) {
                 alert("Data Loaded: " + data);
               });

这是我的 gridedit.jsp

    <% String b=request.getParameter("before");

    if(b.equalsIgnoreCase("row"))
     {
System.out.println("ROW ROW ROW your boat");
        out.println("bummer");
    } %>

我想将从 gridedit.jsp 返回的值存储到一个 javascript 变量中。我该怎么做?

请帮忙

谢谢

编辑:

这也是我尝试过的

    $.ajax({
                url: "gridedit.jsp",

                async: true,
                cache: false,
                type:"GET",
                data: {
                    before:'row',
                      },
                      error: function(msg) { alert(msg); },
                      complete: function (xhr, status) { alert('complete: '+status); }

            });

我收到两个警报,第一个说

    [object][object]

第二个说

    error

谁能弄清楚发生了什么?

请帮忙

谢谢

错误;

所以我在这里尝试过

      $.ajax({
                url: "gridedit.jsp",
                //dataType: "json",
                async: true,
                cache: false,
                type:"GET",
                data: {
                    before:'row'
                      },
                      error: function( jqXHR, textStatus, errorThrown ) { alert(jqXHR);
                      alert(textStatus);
                      alert(errorThrown);},
                      complete: function (xhr, status) { 
                          alert('jqXHR:'+xhr);
                          alert('complete: '+status); }

            });

我按顺序收到以下警报:

jqXHR: [对象][对象]

测试状态:

      parseerror

错误抛出:

      Unexpected end of input

谁能帮我解决这个问题?我的 gridedit.jsp 是这样做的->

          <%String b=request.getParameter("before");
          System.out.println("b is here !" + b);
                        out.println("HELLO");%>

请帮忙

谢谢

【问题讨论】:

  • 我对 java 语法并不肯定,但这对我来说还不错。您期望发生什么,而正在发生什么?您是否检查了您的 JavaScript 控制台和浏览器的网络选项卡是否有错误?
  • -1 表示不显示实际行为,错误消息。请花时间在您的问题中提供详细信息,这只会对您有所帮助,以便更多人看到您的问题
  • 感谢@Jason。我希望警报会弹出,但它没有
  • 感谢@Juan。我没有收到任何错误消息。我只想访问我的 gridedit.jsp 发送的数据,这就是为什么我试图弹出一个警报以查看是否有任何数据正在传递。当我检查日志时,会打印“ROW ROW ROW 你的船”字符串。但是我没有看到警报
  • 如果您在 firefox 中调试,请安装 firebug 插件。有一个面板可以显示传出的 ajax 请求,以及(可能)返回的响应。

标签: javascript jquery ajax jsp


【解决方案1】:

尝试第二个:

我有一个如下所示的 ajax 请求:

$.ajax({
    url: "/someplace",
    dataType: "json",
    async: true,
    cache: false,
    data: {
        number0: 0,
        key: littleKey
    },
    success: function(data, status)
    {
        alert(data);
    }
});

它按预期工作。

您可以使用type : "GET" 指定get 和其他选项。

也许尝试让您的 .jsp 无论如何打印一些数据,并打印它正在接收的数据。

【讨论】:

  • 感谢@Shade,你的意思是我可以做一个 out.println("Hello");在我的目标 JSP 中,会弹出警报?
  • 好吧,从那开始,检查请求是否发出,你是否会收到回复。但是这样一来,即使 .jsp 没有获取数据,如果连接正常,它仍然会发回一些东西。
  • 我尝试了上述方法,但得到了相同的结果。当我检查日志时,会打印“ROW ROW ROW 你的船”字符串。但是我没有看到警报
  • 日志中还有其他内容吗?有什么指示错误吗?并尝试将“测试”放在 标记之外并再次运行
  • 不,没有其他错误。我尝试在 scriptlet 标记之前编写测试,它像往常一样工作
【解决方案2】:

它在一个变量中,匿名函数中传递给.done()的数据变量

无论您需要 gridedit.jsp 返回的数据做什么,最简单的方法就是在该函数中使用它。现在你所做的只是制作一个包含返回数据的弹出窗口。

【讨论】:

  • 如果弹出窗口显示数据,我认为 OP 不会问这个问题
  • 啊,我不知道弹出窗口没有显示,我只是想他/她想在另一个脚本的其他地方使用数据。
  • [object][object] 是 json。查看 json 是什么的一种方法是查看 firebug。一旦你查看了 ajax 请求(它称之为 XHR),单击请求,然后应该有一个标签为 JSON 的选项卡。点击它,它会展开对象结构。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 2021-12-01
  • 2019-11-04
  • 2016-10-28
  • 2012-10-09
相关资源
最近更新 更多