source

jQuery AJAX 및 JSON 형식

goodcode 2023. 3. 27. 23:22
반응형

jQuery AJAX 및 JSON 형식

다음과 같이 JSON을 수신할 것으로 예상되는 웹 서비스가 있습니다.

{"first_name":"test","last_name":"teste","email":"moi@someplace.com","mobile":"+44 22 2222 2222", "password":"testing"}

jQuery의 AJAX 호출:

$.ajax({
        type: "POST",
        url: hb_base_url + "consumer",
        contentType: "application/json",
        dataType: "json",
        data: {
            first_name: $("#namec").val(),
            last_name: $("#surnamec").val(),
            email: $("#emailc").val(),
            mobile: $("#numberc").val(),
            password: $("#passwordc").val()
        },
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });

데이터가 전송되는 형식을 확인할 수 있는 방법이 있습니까?서버에 올바른 JSON을 송신하고 있지 않다고 생각됩니다(이것은 검증의 첫 단계입니다).

jQuery 코드가 유효한 JSON을 전송하고 있습니까?아니면 뭔가 놓쳤습니까?

당신은 실제로 JSON을 보내는 것이 아닙니다.개체를 전달하고 있습니다.data단, 오브젝트를 문자열화하고 대신 문자열을 전달해야 합니다.

당신의.dataType: "json"는 반환된 JSON을 해석하는 것을 jQuery에게만 통지합니다.jQuery가 자동으로 요청 데이터를 문자열화하는 것은 아닙니다.

변경 내용:

$.ajax({
        type: "POST",
        url: hb_base_url + "consumer",
        contentType: "application/json",
        dataType: "json",
        data: JSON.stringify({
            first_name: $("#namec").val(),
            last_name: $("#surnamec").val(),
            email: $("#emailc").val(),
            mobile: $("#numberc").val(),
            password: $("#passwordc").val()
        }),
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
});

난 그런 접근은 전혀 운이 없었어.저는 항상 이렇게 합니다(이것이 도움이 되기를 바랍니다).

var obj = {};

obj.first_name = $("#namec").val();
obj.last_name = $("#surnamec").val();
obj.email = $("#emailc").val();
obj.mobile = $("#numberc").val();
obj.password = $("#passwordc").val();

그리고 당신의 아약스:

$.ajax({
        type: "POST",
        url: hb_base_url + "consumer",
        contentType: "application/json",
        dataType: "json",
        data: JSON.stringify(obj),
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });

현재 다음과 같은 일반적인 POST 값으로 데이터를 보내고 있습니다.

first_name=somename&last_name=somesurname

데이터를 json으로 전송하려면 데이터를 사용하여 개체를 만들고 문자열을 지정해야 합니다.

data: JSON.stringify(someobject)
$.ajax({
   type: "POST",
   url: hb_base_url + "consumer",
   contentType: "application/json",
   dataType: "json",
   data: {
       data__value = JSON.stringify(
       {
           first_name: $("#namec").val(),
           last_name: $("#surnamec").val(),
           email: $("#emailc").val(),
           mobile: $("#numberc").val(),
           password: $("#passwordc").val()
       })
   },
   success: function(response) {
       console.log(response);
   },
   error: function(response) {
       console.log(response);
   }
});

(RU) "- $_POST ['data_value']; "첫 번째 이름"

(EN) 서버에서는 데이터를 $_POST ['data_value']로 취득할 수 있습니다.예를 들어 서버에서 first_name 값을 가져오려면 다음과 같이 입력합니다.

$test = json_decode( $_POST['data__value'] );
echo $test->first_name;

문자열을 해석해야 합니다.JavaScript 개체에서 JSON 개체로 전송 중입니다.

var json = $.parseJSON(data);

언급URL : https://stackoverflow.com/questions/17426199/jquery-ajax-and-json-format

반응형