当前位置: 首页 > 面试题库 >

如何将数组作为(jquery)ajax请求的一部分发送

索嘉石
2023-03-14
问题内容

我试图将数组作为ajax请求的一部分发送,如下所示:

var query = [];
// in between I add some values to 'query'
$.ajax({
    url: "MyServlet", 
    data: query,
    dataType: "json",  
    success: function(noOfResults) { 
    alert(noOfResults); 
    }
  });
}

我想看看我在servlet中得到了什么,所以我使用了这一行:

System.out.println(request.getParameterMap().toString());

返回{}表示空地图。

Firebug告诉我我遇到400 bad request错误

如果我像这样发送一个queryString
attribute=value作为“数据”,那么一切工作正常,因此它与无法按原样发送数组有关。我要怎么做才能将该数据放入servlet进行进一步处理。如果可以避免,我不想将其拉出并变成JS中的queryString。

编辑: 发送数据之前,我使用了.serializeArray()(jQuery)函数。我没有得到400,但没有发送任何有用的信息。


问题答案:

您必须发送一个首先使用JSON.stringify进行字符串化的对象。

像这样:

var query = [];
// in between I add some values to 'query'
$.ajax({
    url: "MyServlet",
    data: JSON.stringify({ nameParameter: query })
    dataType: "json",
    success: function(noOfResults) {
        alert(noOfResults);
    }
  });
}


 类似资料:
  • 问题内容: 我有以下POST请求表格(简化): 我尝试发送POST请求: 但它返回状态并带有以下注释: 请指出我的错误。我应该进行哪些更改才能使其正常工作? 问题答案: 您自己设置标题,包括边界。不要这样 会为您生成一个边界并将其设置在标头中,但是如果您 已经 设置了标头,那么生成的有效负载和标头将不匹配。只需将标题全部放下即可: 请注意,我还给了零件一个文件名(路径的基本名称)。 有关多部分PO

  • 问题内容: 我想使用jQuery将JavaScript数组发送到servlet 。 当我使用 它返回空值。 如何访问这些值? 问题答案: 将数组作为JS对象的值发送,因此最终得到。 在servlet中,您需要在请求参数名称后加上。 jQuery附加了它们以便对弱类型语言(如PHP)友好。

  • 我有一个Web服务,它使用Spring Rest Controller(使用Netty而不是Apache Tomcat)处理GET/POST/PUT HTTP请求。我希望过滤我服务中的所有请求,当请求配置了特定的标头时,我希望将此特定请求发送到一个完全不同的URL,同时将响应返回到发送原始请求的相同实体。 这是我的代码: 在这个实现中,请求只是传递给我的普通rest控制器,而不会到达其他服务。我错

  • 问题内容: 我想做的事情: 使用jquery ajax请求将一些数据(例如json)简单地发送到node.js http服务器。 由于某种原因,我无法在服务器上获取数据,因为它从不触发请求的“数据”事件。 客户代码: 服务器代码: 如我所说,它永远不会进入请求的“数据”事件。 注释: 1.记录“收到请求”消息; 2.响应很好,无法使用数据将其返回给客户端。 有什么帮助吗?我想念什么吗? 谢谢大家。

  • 问题内容: 我是Struts 2的新手。我想使用jQuery AJAX请求将javascript数组发送到Struts动作类。 警报运行正常,但没有运行。 当我把 在方法,输出 语言:。 这是我的动作课 问题答案: 当使用进行ajax请求时,jQuery 内部使用参数序列化发送的数据。 数据应设置为整数数组或带有逗号分隔的整数列表的字符串,因此jQuery可以在发送请求之前正确序列化它。 您只能通

  • 问题内容: 我知道为什么以及如何在jQuery AJAX请求中使用。 但是我需要的是它如何同步工作?这背后的魔力是什么? 问题答案: 因为本机对象提供了发出同步请求的可能性: async 可选的布尔参数,默认为true,指示是否异步执行该操作。 您可以通过暂停运行JS的线程来假定这样做。