source

curl cmd를 jQuery $.ajax()로 변환하는 중

ittop 2023. 9. 24. 13:07
반응형

curl cmd를 jQuery $.ajax()로 변환하는 중

jquery ajax와 api 통화를 시도하고 있습니다. api에 대해 curl 작업을 하고 있지만 api가 HTTP 500을 던지고 있습니다.

컬 명령이 이렇게 작동합니다.

curl -u "username:password" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"foo":"bar"}' http://www.example.com/api

아약스를 이렇게 해봤는데 작동이 안 되네요.

$.ajax({
    url: "http://www.example.com/api",
    beforeSend: function(xhr) { 
      xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
    },
    type: 'POST',
    dataType: 'json',
    contentType: 'application/json',
    data: {foo:"bar"},
    success: function (data) {
      alert(JSON.stringify(data));
    },
    error: function(){
      alert("Cannot get data");
    }
});

제가 무엇을 빠뜨리고 있나요?

기본적으로 $.ajax()는 변환됩니다.data아직 문자열이 아닌 경우 쿼리 문자열에 연결합니다.data여기 물체가 있습니다. 변경합니다.data줄에 연결한 다음 설정합니다.processData: false, 쿼리 문자열로 변환되지 않도록 합니다.

$.ajax({
    url: "http://www.example.com/api",
    beforeSend: function(xhr) { 
      xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
    },
    type: 'POST',
    dataType: 'json',
    contentType: 'application/json',
    processData: false,
    data: '{"foo":"bar"}',
    success: function (data) {
      alert(JSON.stringify(data));
    },
    error: function(){
      alert("Cannot get data");
    }
});

언급URL : https://stackoverflow.com/questions/20155531/converting-curl-cmd-to-jquery-ajax

반응형