Go REST
G

Getting 422 as Request Status?

Ganesh Maurya about 3 years ago 4445 views 1 replies

I have attached my javascript code. Please help someone where the mistake is in my code.

document.addEventListener('DOMContentLoaded', function () {
let requestBodyEl = document.getElementById('requestBody');
let sendPostRequestBtn = document.getElementById('sendPostRequestBtn');
let requestStatus = document.getElementById('requestStatus');
let httpResponse = document.getElementById('httpResponse');

function buttonClick() {
let userInput = requestBodyEl.value;
let options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization:
'Bearer ACCESS-TOKEN',
},
body: JSON.stringify(userInput),
};

fetch('https://gorest.co.in/public-api/users', options)
  .then(function (response) {
    return response.json();
  })
  .then(function (jsonData) {
    requestStatus.textContent = jsonData.code;
    console.log(jsonData);
    httpResponse.textContent = JSON.stringify(jsonData);
  });

}

sendPostRequestBtn.addEventListener('click', buttonClick);
});

Ignore the ACCESS-TOKEN, as I have used the access token.

When I try to POST this data.
{
name: Vinod,
email: vinod@gmail.com,
gender: Male,
status: Active
}

I am getting this as response.
{code:422,meta:null,data:[{field:email,message:can't be blank},{field:name,message:can't be blank},{field:gender,message:can't be blank, can be male of female},{field:status,message:can't be blank}]}

1 reply
Z
zeevy about 3 years ago

you are sending data as raw test instead of json string

"{\n\"name\": \"Rakshita\",\n\"email\": \"rakshita@gmail.com\",\n\"gender\": \"Female\",\n\"status\": \"Active\"\n}"

May be just this will work httpResponse.textContent = jsonData;

Below is the code used in the Rest Console of this application


$(document).on('click', '#rsq_send', () => {

    let rsq = {};
    rsq.url = $('#rsq_url').val();
    rsq.type = $('#rsq_type').val();

    rsq.headers = {};
    $("#rsq_form").find("input[name='rsq_header_name[]']").each((i, e) => {
        if ($(e).val()) {
            rsq.headers[$(e).val()] = $("#rsq_form").find("input[name='rsq_header_value[]']").eq(i).val();
        }
    });

    rsq.headers['Accept'] = 'application/json, text/plain, */*';
    rsq.data = $('#rsq_body').val();
    rsq.contentType = 'application/json';

    rsq.beforeSend = () => {
        $('#rsp_headers').html('');
        $('#rsp_body').html('');
        $('#rsp-body-title').html('');
    };

    var jqXHR = $.ajax(rsq);

    jqXHR.done((data, textStatus, jqXHR) => {
        $('#rsp_body').html(JSON.stringify(data, null, 2));
        $('#rsp_headers').html(jqXHR.getAllResponseHeaders());
        $('#rsp-body-title').html('Status: ' + jqXHR.status);
    });

    jqXHR.fail(function (jqXHR, textStatus, errorThrown) {
        $('#rsp_body').html(JSON.stringify(jqXHR.responseJSON, null, 2));
        $('#rsp_headers').html(jqXHR.getAllResponseHeaders());
        $('#rsp-body-title').html('Status: ' + jqXHR.status);
    });

});

Your reply

Markdown supported