728x90
422 unprocessable entity
ajax로 작업하고 post를 날렸는데, 422 unprocessable entity 에러가 발생했다.
왜 안되는지 못잡아서 한참 봤는데, contentType 미기재로 인한 ajax form 에러였다.
function requestChat(messageText) {
let request = {"input1" : messageText};
$.ajax({
url: 'url',
type: 'POST',
data: JSON.stringify(request),
dataType: 'JSON',
success: function(response) {
console.log(response);
},
error: function (error) {
console.log(error);
}
});
}
위 코드는 아래와 같이 수정하였더니 문제없이 실행되었다.
function requestChat(messageText) {
let request = {"input1" : messageText};
$.ajax({
url: 'url',
type: 'POST',
data: JSON.stringify(request),
dataType: 'JSON',
contentType: 'application/json',
success: function(response) {
console.log(response);
},
error: function (error) {
console.log(error);
}
});
}
dataType과 contentType의 차이점
contentType:
요청을 보낼 때 사용됩니다. 클라이언트는 요청의 콘텐츠 유형을 지정하여 서버가 요청을 올바르게 처리할 수 있도록 합니다. 예를 들어, 클라이언트가 요청에 JSON 데이터를 포함하려는 경우 contentType을 application/json으로 설정합니다.
'application/json; charset-utf-8' 이 흔하게 쓰이고
디폴트 값은 'application/x-www-form-urlencoded; charset=utf-8'입니다.
dataType:
응답을 받을 때 사용됩니다. 클라이언트는 응답의 데이터 유형을 지정하여 응답을 올바르게 처리할 수 있도록 합니다.
예를 들어, 클라이언트가 응답에 JSON 데이터를 기대하는 경우 dataType을 json으로 설정합니다.
dataType 종류: xml , html , script , json , text
* 생략했을경우에는 jQuery가 MIME타입들을 보면서 자동으로 결정합니다.
MIME 타입(MIME type)
인터넷에서 데이터를 전송할 때 사용하는 파일 형식과 콘텐츠 유형을 나타내는 문자열입니다.
MIME 타입은 두 부분으로 구성됩니다.
첫 번째 부분은 데이터의 전반적인 범주를 나타내며, 두 번째 부분은 데이터의 특정 형식을 나타냅니다.
예를 들어, HTML 파일의 MIME 타입은 text/html입니다.
여기서 text는 데이터의 전반적인 범주인 텍스트를 나타내고, html은 데이터의 특정 형식인 HTML을 나타냅니다.
MIME 타입은 HTTP, SMTP, FTP 등 다양한 인터넷 프로토콜에서 사용됩니다.
HTTP에서 클라이언트는 서버에 요청을 보낼 때 요청의 콘텐츠 유형을 지정합니다.
서버는 요청을 처리하기 전에 클라이언트가 요청한 콘텐츠 유형을 확인합니다.
MIME 타입은 인터넷에서 데이터를 전송하는 데 중요한 역할을 합니다.
MIME 타입을 사용하면 클라이언트와 서버가 데이터의 형식을 이해할 수 있으므로,
데이터를 올바르게 처리할 수 있습니다.
MIME 타입의 예는 다음과 같습니다.
text/plain: 일반 텍스트 파일
text/html: HTML 파일image/jpeg: JPEG 이미지 파일
image/png: PNG 이미지 파일
application/pdf: PDF 파일
application/zip: ZIP 파일
MIME 타입은 인터넷에서 사용되는 모든 파일 형식에 대해 정의되어 있습니다.
IANA(Internet Assigned Numbers Authority)에서 MIME 타입을 관리하고 있습니다.
https://knowledge-warehouse-jun.tistory.com/8
728x90
'STUDY > jQuery' 카테고리의 다른 글
[jQuery] Uncaught TypeError: $.ajax is not a function 오류 (0) | 2023.10.13 |
---|---|
[jQuery] 선택 요소의 좌표 .offset() (0) | 2023.09.15 |
[jQuery] 문자열 치환 알고리즘 (0) | 2023.05.07 |
[jQuery] .html 개행 \n 적용 <br> (0) | 2023.04.26 |
[jQuery] function(e) 의미 (0) | 2023.04.03 |