2014-08-30 73 views
-1

嗯,我找不到出路。我谷歌很多,尝试不同的方式,代码示例等等,我有这个奇怪的问题。 在SoapUI中,我可以测试Web服务,我甚至可以通过身份验证来测试服务。 但是... 我不能通过代码。AJAX + jQuery + SAP认证+基本认证= 401未经授权。 (代码+图片)

所以这里有一些打印屏幕和我正在尝试的代码。 如果你们能帮助我。 我将不胜感激。

谢谢。

CODE:---------------

var WEBSERVICE_URL = "http : // webservice:port/bla/bla/bla"; 
    $.ajax({ 
     url: WEBSERVICE_URL, 
     type: "POST", 
     dataType: "json", 
     username: "user", 
     password: "password", 
     processData: false, 
crossDomain: true, 
     contentType: "application/json", 
beforeSend: function (xhr) { 
xhr.setRequestHeader ("Authorization", "Basic SomeLettersAndNumbers_I_GotBySoapUI_IKnowHereItGoesTheKeyString=="); 
}, 
     success: function() { 
      alert("success"); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { //Add these parameters to display the required response 
      alert(xhr.status); 
      alert(xhr.responseText); 
     }, 
    }); 

image1

image2

回答

0
username "user", 
    password: "password", 

应该

data: { 
    username: "user", 
    password: "password" 
}, 

其中一个可能只是其中一个问题秒。我不确定

0

看起来您正在尝试提出跨网站请求。我猜这导致JQuery将结果显示为401,这并不是特别有用,因为实际上似乎发生的事情是请求从未将其发送到服务器。您可以通过在Chrome上使用一些特殊选项来解决此问题,但我认为这不会在标准浏览器上运行,除非您可以让服务器提供必要的访问控制标头。