如何使用jquery ajax调用传递webservice的凭据?

时间:2013-01-29 09:24:38

标签: jquery ajax web-services web

我正在使用这样的jquery ajax调用:

$.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");
                },
    });

仍然是电话不会转到网络服务。每次我收到ERROR警报。有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:30)

如果您正在进行跨域请求:

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

答案 1 :(得分:14)

尝试使用post作为方法类型,大多数Web服务都是安全的,需要使用post而不是获取传播

以帮助您调试错误和错误的响应文本。

 $.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);
     },
 });

答案 2 :(得分:0)

我的 2 美分。

我在这个问题上浪费了大量时间,但我通过将请求的方法从 GET 更改为 POST 来解决它。

奇怪的是,当通过 Postman 调用时,两种方法类型 (GET/POST) 都可以工作,但是当我将其更改为 POST 方法时,它只能成功命中我的 Web API 端点。

请注意,就我而言,我仅在使用 Windows 身份验证时传递 grant_type,因此在发布时我没有传递用户名或密码。