gpt4 book ai didi

javascript - ajax post to jboss eap 7 without encodeURIComponent occurred messy code

转载 作者:行者123 更新时间:2023-11-28 22:17:02 24 4
gpt4 key购买 nike

首先,该项目在tomcat(UTF-8)和jboss eap 6中运行良好,页面编码也是UTF-8。其次,jboss config有添加

<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only" default-encoding="UTF-8">

第三,当使用 encodeURIComponent 或 serialize 时效果很好,但是,当使用 serialize 并附加一些参数时失败,如下所示:

  var params = $("#form_viewOrUpdateSchedule").serialize();
params += "&recordId=" + recordId;
params += "&custName=" + custName;
params += "&startTime=" + startTime;
params += "&content=" + content;
params += "&endTime=" + endTime;
params += "&scheduleDate=" + getScheduleDate();
bodymask();
$.ajax({
url: url,
type: "POST",
data: params,
datatype: "JSON",
contentType : "application/x-www-form-urlencoded; charset=utf-8",
success: function(data) {

第四,如果使用 serialize 或类似如下,效果很好:

  var recordId = $("#schedule_list_id").val();
var custName = $("#schedule_list_custName option:selected").val();
var startTime = $("#schedule_list_startTime").val();
var endTime = $("#schedule_list_endTime").val();
var content = $("#schedule_list_content").val();
var startIndex = $("#schedule_list_startTime").get(0).selectedIndex;
var endIndex = $("#schedule_list_endTime").get(0).selectedIndex;
if (startIndex > endIndex) {
alertInfo("提示", "结束时间不能早于开始时间");
return;
}
var params = {}
params.recordId = recordId;
params.custName = custName;
params.startTime = startTime;
params.content = content;
params.endTime = endTime;
params.scheduleDate = getScheduleDate();
$.ajax({
url: url,
type: "POST",
data: params,

第五,jboss eap 7(实际更名为WildFly,版本为10)是基于undertow而不是tomcat。

六,类似的问题在https://developer.jboss.org/thread/221662中被问到,并且无法设置默认字符编码的问题在WildFly 8.0中得到解决,在https://javaarm.com/faces/display.xhtml;jsessionid=bPtpE2lS35rYKscI0laAyYbp?tid=3341&page=1&print=true中提到。

最后,我想知道为什么它在 tomcat 中与上面的“thirdly”js 一起工作,而在 jboss eap 7 中却失败了?不改js代码怎么解决?

最佳答案

您需要在 http-listener(和任何其他)上设置 uri 编码

例如:

<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" url-charset="UTF-8"/>

或客户端:

/subsystem=undertow/server=default:server/http-listener=default:write-attribute(name="uri-charset", value="UTF-8")

对于您可能正在使用的所有其他监听器也是如此。

请注意,名为 org.apache.catalina.* 的系统属性是与 tomcat 相关的属性。由于使用的 WildFly 8+ 和 EAP7+ 网络服务器已经过时,不再是基于 tomcat 的 jbossweb。因此,此属性根本不会产生任何影响。

关于javascript - ajax post to jboss eap 7 without encodeURIComponent occurred messy code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43085811/

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