programing tip

jQuery ajax 함수의 contentType과 dataType의 차이점

itbloger 2020. 7. 18. 10:38
반응형

jQuery ajax 함수의 contentType과 dataType의 차이점


다음 Jquery 콜백 함수가 있으며 그것에 대해 약간의 의심이 있습니다 (Jquery를 잘 모르고 있습니다).

$("form.readXmlForm").submit(function() {
    // Riferimento all'elemento form che ha scatenato il submit 
    var form = $(this);
    // Variabile che contiene il riferimento al bottone clickato 
    var button = form.children(":first");

    $.ajax({        // Viene eseguita la chiamata AJAX 
        type: "POST", // Tipo di richiesta: POST 
        // URL verso quale viene inviata la richiesta
        url: form.attr("action"),    
        // Dati XML inviati: 
        data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><javaBean><foo>bar</foo><fruit>apple</fruit></javaBean>", 
        // Tipo di media type accettabile dalla response: 
        contentType: "application/xml", 
        dataType: "text", 

        success: function(text) { 
            MvcUtil.showSuccessResponse(text, button); 
        }, 

        error: function(xhr) { 
            MvcUtil.showErrorResponse(xhr.responseText, button); 
        }
    });

보시다시피이 기능은 백엔드에 대한 AJAX 요청을 실행하여이 요청에 대한 매개 변수를 설정합니다.

URL로 요청을 보내고, 요청은 POST 요청이며, 보내는 데이터는 다음 문자열임을 설정했습니다.

"barapple"

contentTypedataType 의 차이점을 이해하는 데 어려움이 있습니다.

contentType 이 HTTP 응답에 허용되는 데이터 유형을 지정 한다고 생각 합니다. 맞습니까?

그리고 dataType? 뭐라고? HTTP 요청에서 보내는 데이터 유형은 무엇입니까?

이 경우 XML 코드를 나타내는 텍스트 문자열을 전송하기 때문에 "텍스트"입니까?


로부터 문서 :

contentType (기본값 : 'application / x-www-form-urlencoded; charset = UTF-8')

유형 : 문자열

서버로 데이터를 보낼 때이 컨텐츠 유형을 사용하십시오. 기본값은 "application / x-www-form-urlencoded; charset = UTF-8"이며 대부분의 경우 적합합니다. content-type을 $ .ajax ()에 명시 적으로 전달하면 데이터가 전송되지 않더라도 항상 서버로 전송됩니다. 문자 집합이 지정되지 않으면 서버의 기본 문자 집합을 사용하여 서버로 데이터가 전송됩니다. 서버 측에서이를 적절하게 디코딩해야합니다.

과:

dataType (기본값 : Intelligent Guess (xml, json, 스크립트 또는 html))

유형 : 문자열

서버에서 다시 기대하는 데이터 유형입니다. 아무것도 지정하지 않으면 jQuery는 응답의 MIME 유형을 기반으로 유추하려고 시도합니다 (XML MIME 유형은 XML을 생성하고 1.4에서 JSON은 JavaScript 객체를 생성하고 1.4 스크립트에서 스크립트를 실행하며 그 밖의 모든 것은 문자열로 반환).

그것들은 본질적으로 당신이 생각했던 것과 반대입니다.


여기에 이미지 설명을 입력하십시오

영어로:

  • ContentType: 서버로 데이터를 전송할 때이 컨텐츠 유형을 사용하십시오. 기본값은 application/x-www-form-urlencoded; charset=UTF-8입니다. 대부분의 경우에 적합합니다.
  • Accepts: 요청 헤더에 전송 된 컨텐츠 유형으로 서버가 어떤 응답을받을 것인지 서버에 알려줍니다. 에 따라 다릅니다 DataType.
  • DataType: 서버에서 다시 기대하는 데이터 유형입니다. 아무것도 지정하지 않으면 jQuery는 응답의 MIME 유형을 기반으로 추론하려고 시도합니다. 일 수 있습니다 text, xml, html, script, json, jsonp.

참고 URL : https://stackoverflow.com/questions/14322984/differences-between-contenttype-and-datatype-in-jquery-ajax-function

반응형