dataType vs accepts - Ajax 요청
Ajax Request에서 accepts와 dataType의 차이를 이해하려고 합니다.설명서 상태:
acceptes(기본값: DataType에 따라 다름) Type: PlainObject 반환할 응답의 종류를 서버에 알려주는 요청 헤더로 전송되는 내용 유형입니다.
dataType(기본값:지능형 추측(xml, json, 스크립트 또는 html)유형: 문자열 서버에서 반환할 데이터 유형입니다.
기본적으로 같은 것인가요? 같은 목적을 가지고 있습니다.
여기에, 바라건대, 정확한 답이 있습니다.
그accepts
옵션을 변경할 수 있습니다.Accept
요청의 머리글
이 옵션을 변경하면Accept
요청의 헤더가 지정된 헤더로 설정됩니다.문자열이 아니라 승인된 응답의 MIME 유형을 매핑하는 오브젝트입니다.맘에 들다{ text: "text/plain", html: "text/html" }
.그Accept
헤더는 서버가 요청에 의해 예상되는 형식으로 응답을 제공하기 위해 사용하거나, 요청에 의해 예상되는 형식 중 하나로 응답을 제공할 수 없는 경우 실패할 수 있습니다.
정말 중요한 것은 적어도 jQuery 1.11.3(내가 테스트한 곳)에서는 이 옵션이 작동하지 않는 것처럼 보인다는 것입니다. 대신에 나는 다음을 사용하여 헤더를 변경할 수 있었습니다.headers
옵션:headers: {Accept : "text/json"}
.
그dataType
옵션을 사용하여 응답을 사전 처리할 수 있습니다.
정의한 경우dataType
요청의 응답은 성공 핸들러가 사용할 수 있기 전에 jQuery에 의해 사전 처리됩니다.예:
한다면
json
지정된 경우, 다음을 사용하여 응답을 구문 분석합니다.jQuery.parseJSON
개체로 성공 처리기에 전달되기 전에.한다면
script
지정됨,$.ajax()
서버에서 수신한 JavaScript를 실행한 후 성공 처리기에 문자열로 전달합니다.
자세한 내용은 "데이터 유형" 섹션을 참조하십시오.
그런 경우에는dataType
설정되지 않았습니다.Content-Type
응답의 사전 처리가 응답에 수행되어야 하는 작업을 결정합니다.변경 내용은 다음과 같습니다.dataType
변경할 것입니다.Accept
헤더도.일반적으로 변경할 필요가 없습니다.Accept
머리글을 혼자서.
예
request.message
<?php
if(strpos($_SERVER["HTTP_ACCEPT"],"text/javascript") === false)
exit("I only provide text/javascript responses");
echo "alert('This is my response!')";
색인.
<button id="send">Send</button>
<div id="response"></div>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
$(function(){
$("#send").click(function(){
$.ajax({
method: "GET",
url: "request.php",
dataType: "script" // Change this to "text" and you will see the difference
}).done(function(data) {
$("#response").text(data);
});
});
});
</script>
그 때.dataType
으로 설정됨"script"
그Accept
헤더는 다음을 포함합니다."text/javascript"
그래서 시험은request.php
통과할 것입니다.돌아올 것입니다."alert('This is my response!')"
그리고 왜냐하면dataType
으로 설정됨"script"
jQuery는 이를 Javascript로 실행한 다음 일반 텍스트로 성공 처리기에 전달합니다.
▁the경우▁you▁change▁ifdataType
"text"
그자리의 Accept
에 헤에포지않이 포함되지 ."text/javascript"
그서시험에 대한 .request.php
실패합니다.돌아올 것입니다."I only provide text/javascript responses"
그고왜냐면하리▁the 때문에.dataType
으로 설정됨"text"
jQuery는 일반 텍스트로 성공 처리기에 전달합니다.
언급URL : https://stackoverflow.com/questions/33060712/datatype-vs-accepts-ajax-request
'programing' 카테고리의 다른 글
PowerShell에서 gcloud cmdlet을 찾을 수 없는 이유는 무엇입니까? (0) | 2023.08.17 |
---|---|
유닉스 시간을 날짜 및 시간으로 신속하게 변환 (0) | 2023.08.17 |
JQuery Datatables : 정의되지 않은 'aDataSort' 속성을 읽을 수 없습니다. (0) | 2023.08.17 |
도커 파일의 이름이 도커 파일이 아닌 경우 도커 파일을 작성하려면 어떻게 해야 합니까? (0) | 2023.08.17 |
다른 이름으로 저장 대화 상자에서 선택한 파일을 저장하는 방법은 무엇입니까? (0) | 2023.08.17 |