19

我正在使用这样的 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");
                },
    });

呼叫仍然不会转到 Web 服务。每次我收到错误警报。有人可以帮我解决这个问题吗?

4

3 回答 3

42

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

$.ajax({
    url: "yoururl",
    type: "GET",
    dataType: 'json',
    xhrFields: {
         withCredentials: true
    }
});
于 2013-07-25T01:07:16.923 回答
14

尝试使用 post 作为方法类型,大多数 web 服务都是安全的,需要使用 post 而不是 Get 传输

加上帮助您调试错误和对错误的响应文本。

 $.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);
     },
 });
于 2013-01-29T09:29:20.353 回答
0

我的2美分。

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

奇怪的是,这两种方法类型(GET/POST)在通过调用时都可以工作,Postman但是当我将其更改为 POST 方法时,它才设法访问我的 Web API 端点。

请注意,在我的情况下,我只是在使用 Windows 身份验证时传递了 grant_type,所以我在发布时没有传递用户名或密码。

于 2021-01-04T16:37:44.317 回答