gpt4 book ai didi

javascript - JQuery AJAX POST 在 Liberty 配置文件上的 HttpServletRequest 中生成 null 参数

转载 作者:行者123 更新时间:2023-11-28 04:57:26 24 4
gpt4 key购买 nike

我有一个较旧的 JAX-RS 应用程序,正在 IBM Liberty 配置文件 16.0.0.4 上运行,具有 jaxrs-2.0 功能。我遇到了一些无法解释的奇怪行为,需要一些帮助。

JAX-RS服务代码:

@Path("/loadData") 
@POST
@Produces("text/plain")
public String loadData(@Context HttpServletRequest request) {
String id = request.getParameter("id");
String email = request.getParameter("email");

// add'l request processing code
}

JQuery 代码:

$(document).ready(function() {
var reqData = {id:"123456", email:"user@email.com"};
$.ajax({
type: "POST",
cache: false,
url: "http://localhost:9080/jaxrs/loadData",
data: reqData,
contentType: "application/json",
dataType: "json",
timeout: "30",
beforeSend: function() { ... },
success: function(data) { .... },
complete: function(data) { .... }
});
});

JQuery(在 IE 中)结果:

request.getParameter("id") or ("email") = null;
request.toString() = org.apache.cxf.jaxrs.impl.HttpServletRequestFilter@f272c8dc
IOUtils.toString(request.getInputStream) = "id=123456&email=user1%40email.com"

SoapUI 结果:

request.getParameter("id") = 123456 and ("email") = user@email.com;
request.toString() = org.apache.cxf.jaxrs.impl.HttpServletRequestFilter@de62638a
IOUtils.toString(request.getInputStream) = ""

我比较了 SoapUI 和 IE 控制台中的 RAW HTTP 请求,据我所知,它们似乎是相同的。所以这真的让我很困惑,JQuery 和 SoapUI 都在执行 POST,但在 IE 的情况下,查询流似乎没有被解析为参数,而只是维护为字符串。我试图搞乱 contentType 和请求声明,但没有任何效果。我本来使用的是JQuery 1.7.1,但是我尝试了3.1.1,没有效果。有没有人见过这个。任何帮助或见解都会非常好,谢谢!

最佳答案

尝试使用“JSON.stringify”作为参数

$(document).ready(function() {
var reqData = {id:"123456", email:"user@email.com"};
$.ajax({
type: "POST",
cache: false,
url: "http://localhost:9080/jaxrs/loadData",
data: JSON.stringify(reqData),
contentType: "application/json",
dataType: "json",
timeout: "30",
beforeSend: function() { ... },
success: function(data) { .... },
complete: function(data) { .... }
});
});

关于javascript - JQuery AJAX POST 在 Liberty 配置文件上的 HttpServletRequest 中生成 null 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com