programing

AJAX와 JQuery를 이용하여 JSON 데이터로 PUT 통화를 구현하는 방법은?

lovejava 2023. 10. 6. 20:47

AJAX와 JQuery를 이용하여 JSON 데이터로 PUT 통화를 구현하는 방법은?

여러 가지 방법을 찾아봤지만 실제 데이터를 컨트롤러 기능에 전달할 수 없는 것 같습니다.

코드는 다음과 같습니다.

        var URL = "/Timesheet/Timesheet/UpdateEntry";

        var dataObject = { 'newWeekEntry': newEntry, 'oldWeekEntry': oldEntry };

        alert(JSON.stringify(dataObject));

        $.ajax({
            url: URL,
            type: 'PUT',    
            data: JSON.stringify(dataObject),
            dataType: 'json',
            success: function(result) {
                alert("success?");
            }
        });

newEntry그리고.oldEntry둘 다 개체입니다.

alertline은 다음을 출력합니다(단순히 설명하기 위해 일부 속성을 제거함).

{"newWeekEntry":{"MondayHours":2,"TuesdayHours":2,"WednesdayHours":5,"ThursdayHours":5,"FridayHours":"4","SaturdayHours":0,"SundayHours":0},"oldWeekEntry":{"MondayHours":2,"TuesdayHours":2,"WednesdayHours":5,"ThursdayHours":5,"FridayHours":2,"SaturdayHours":0,"SundayHours":0}}

컨트롤러 작업("UpdateEntry")을 디버깅하면 두 매개 변수가 다음으로 채워집니다.TimesheetEntry클래스 기본 매개 변수(0).

이거 제대로 전달하는 건가요?

dataType속성은 서버에서 데이터를 가져올 때만 사용됩니다.설정을 해야 합니다.contentType로.application/json서버에 데이터를 전송할 때.

$.ajax({
        url: window.serverUrl + 'student/event/' + eventId,
        type: 'put',
        data: JSON.stringify(data),
        headers: {
            'x-auth-token': localStorage.accessToken,
            "Content-Type": "application/json"
        },
        dataType: 'json'
})

이거 나한테 통했어요.

머리글 사용:{"X-HTTP-Method-Override": "PUT"}그리고 그것을 무시합니다.POST리퀘스트 타입.내 프로젝트에 효과가 있어요

$.ajax({
    type: 'POST', // Use POST with X-HTTP-Method-Override or a straight PUT if appropriate.
    dataType: 'json', // Set datatype - affects Accept header
    url: "http://example.com/people/1", // A valid URL
    headers: {"X-HTTP-Method-Override": "PUT"}, // X-HTTP-Method-Override set to PUT.
    data: '{"name": "Dave"}' // Some data e.g. Valid JSON as a string
});

언급URL : https://stackoverflow.com/questions/13056810/how-to-implement-a-put-call-with-json-data-using-ajax-and-jquery