JQuery $.ajax() post - Java 서블릿의 데이터
처리를 위해 자바 서블릿으로 데이터를 보내고 싶습니다.데이터는 가변 길이를 가지며 키/값 쌍에 속합니다.
{ A1984 : 1, A9873 : 5, A1674 : 2, A8724 : 1, A3574 : 3, A1165 : 5 }
이런 식으로 데이터를 작성할 필요는 없습니다.그냥 제가 지금 가지고 있는 겁니다.
var saveData = $.ajax({
type: "POST",
url: "someaction.do?action=saveData",
data: myDataVar.toString(),
dataType: "text",
success: function(resultData){
alert("Save Complete");
}
});
saveData.error(function() { alert("Something went wrong"); });
그$.ajax()
Save Complete(저장완료)라는 경고가 뜨기 때문에 기능은 정상적으로 동작합니다.내 딜레마는 서블릿에 있다.데이터를 어떻게 검색합니까?이렇게 해시맵을 사용하려고 했는데...
HashMap hm = new HashMap();
hm.putAll(request.getParameterMap());
...그렇지만hm
내가 추측하건대, 내가 추측하건대, null이 아닌 것으로 판명된 것은.getParameterMap()
키/값 쌍을 찾는 것이 아닙니다.제가 뭘 잘못하고 있는 걸까요? 아니면 뭘 놓치고 있는 걸까요?
문자열이 아니라 키 값 쌍의 JS 맵이 필요합니다.예: 변경:
data: myDataVar.toString(),
포함:
var myKeyVals = { A1984 : 1, A9873 : 5, A1674 : 2, A8724 : 1, A3574 : 3, A1165 : 5 }
var saveData = $.ajax({
type: 'POST',
url: "someaction.do?action=saveData",
data: myKeyVals,
dataType: "text",
success: function(resultData) { alert("Save Complete") }
});
saveData.error(function() { alert("Something went wrong"); });
jQuery는 이와 같은 키 값 쌍을 인식하지만 큰 문자열은 인식하지 않습니다.그것은 그것을 단순히 문자열로 전달합니다.
업데이트: 코드가 수정되었습니다.
Java 스크립트 및 ajex 호출을 사용하여 데이터를 전송하는 간단한 방법입니다.
먼저 폼을 이렇게 바로 잡으세요.
<form id="frm_details" method="post" name="frm_details">
<input id="email" name="email" placeholder="Your Email id" type="text" />
<button class="subscribe-box__btn" type="submit">Need Assistance</button>
</form>
javascript logic target은 sumbit 뒤에 있는 폼 ID #frm_sumbit입니다
$(function(){
$("#frm_details").on("submit", function(event) {
event.preventDefault();
var formData = {
'email': $('input[name=email]').val() //for get email
};
console.log(formData);
$.ajax({
url: "/tsmisc/api/subscribe-newsletter",
type: "post",
data: formData,
success: function(d) {
alert(d);
}
});
});
})
General
Request URL:https://test.abc
Request Method:POST
Status Code:200
Remote Address:13.76.33.57:443
From Data
email:abc@invalid.ts
다음과 같이 ajax post를 사용할 수 있습니다.
$.ajax({
url: "url",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ name: 'value1', email: 'value2' }),
success: function (result) {
// when call is sucessfull
},
error: function (err) {
// check the err for error details
}
}); // ajax call closing
당분간은 제가 말씀드린 것과는 다른 길을 가고 있습니다.데이터 포맷 방법을 다음과 같이 변경했습니다.
&A2168=1&A1837=5&A8472=1&A1987=2
서버 측에서는 get Parameter Names()를 사용하여 모든 키를 Enumerator에 배치하고 Enumerator를 반복하여 키와 값을 HashMap에 배치합니다.다음과 같습니다.
Enumeration keys = request.getParameterNames();
HashMap map = new HashMap();
String key = null;
while(keys.hasMoreElements()){
key = keys.nextElement().toString();
map.put(key, request.getParameter(key));
}
servlet에서 값을 가져오려면POST
명령어를 사용하면, 이 투고에 기재되어 있는 어프로치를 따를 수 있습니다.request.getParameter(key)
원하는 값을 반환하는 형식입니다.
언급URL : https://stackoverflow.com/questions/10214723/jquery-ajax-post-data-in-a-java-servlet
'sourcecode' 카테고리의 다른 글
TypeScript, React, Eslint 및 단순 Arrow 함수 컴포넌트 문제 (0) | 2023.04.03 |
---|---|
angular 2 라우터를 사용하여 현재 루트를 새로고침하는 방법 (0) | 2023.04.03 |
각도용 리치 텍스트 편집기JS (0) | 2023.04.03 |
FeedWordpress Import에 속하는 이미지의 사이즈가 조정됩니다만, 어디에 있습니까? (0) | 2023.04.03 |
JSON으로서의 OkHttp Post Body (0) | 2023.04.03 |