Sriks
Sriks

Reputation: 1699

how to pass credentials for a webservice using jquery ajax call?

I am using the jquery ajax call like this:

$.ajax({
         url: WEBSERVICE_URL,
            type: "GET",
            dataType: "application/json; charset=utf-8",                   
            username: "admin",  // Most SAP web services require credentials
            password: "admin",
            processData: false,
            contentType: "application/json",
            success: function() {
               alert("success");
            },
            error: function() {
                   alert("ERROR");
                },
    });

still the call is not going to web service. Everytime I am getting ERROR alert. Can some body help me on this please?

Upvotes: 21

Views: 72387

Answers (3)

Thierry
Thierry

Reputation: 6458

My 2 cents on this.

I wasted a ridiculous amount of time on this issue, but I solved it by changing my request's method from a GET to a POST.

The strange thing is that both method types (GET/POST) work when called via Postman but it only managed to hit my Web API endpoint when I changed it to a POST method.

Note that in my case, I'm only passing the grant_type as I'm using Windows Authentication so I didn't to pass a username or password when posting.

Upvotes: 0

jiantongc
jiantongc

Reputation: 971

If you are doing cross domain request:

$.ajax({
    url: "yoururl",
    type: "GET",
    dataType: 'json',
    xhrFields: {
         withCredentials: true
    }
});

Upvotes: 46

Mortalus
Mortalus

Reputation: 10712

Try using post for the method type, most webservices are secured and require transimssion using post and not Get

plus to help you debug the error and a response text to your error.

 $.ajax({
     url: WEBSERVICE_URL,
     type: "POST", //This is what you should chage
     dataType: "application/json; charset=utf-8",
     username: "admin", // Most SAP web services require credentials
     password: "admin",
     processData: false,
     contentType: "application/json",
     success: function () {
         alert("success");
     },
     error: function (xhr, ajaxOptions, thrownError) { //Add these parameters to display the required response
         alert(xhr.status);
         alert(xhr.responseText);
     },
 });

Upvotes: 14

Related Questions