2016-08-04 14 views
0

Unten ist meine Funktion zum Senden einer Anfrage senden:Kann nicht Autorisierungsheader mit Ajax

function invokeService() { 
     $(document).ready(function() { 
       var user = "User1"; 
       var pass = "Pwd1"; 


     var hash_str=make_base_auth(user, pass); 

     // the post to your webservice or page 
     $.ajax({ 
      method: "GET", 
      xhrFields: { 
       withCredentials: true 
      }, 
      beforeSend: function (xhr) { 
         xhr.setRequestHeader('Authorization', hash_str); 
       }, 
      headers: { 
       'Authorization': 'Basic ' + hash_str 
      }, 
      url: "http://Servername/ProjName/TestService.svc/GetDetails/" + $('#itemid').val(), 
      contentType: "application/json; charset=utf-8", 
      dataType: "jsonp" 



     }); 
    }); 
} 

ich verschiedene Arten versucht haben, durch Benutzername und Passwort direkt über so etwas vorbei:

$.ajax({ 
    method: "GET", 
    username: user, 
    password: pass, 
    ... 
}); 

und indem ich Autorisierungsheader setze, aber jedes Band, das ich es in Fiddler prüfe, in Auth Abschnitt der Anfrage es besagt, dass "keine Berechtigung headerr anwesend ist". Es sendet es einfach nicht. Kann mir jemand helfen, meinen Berechtigungsheader zu reparieren?

Unten ist das, was in einem Request-Header in Fiddler zeigt sich:

GET /projName/TestService.svc/GetDetails/ABC123?callback=jsonpxxxxxxxxxxxxx HTTP/1.1 


Client 
Accept: application/javascript, */*;q=0.8 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US 
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 

Transport 
Connection: Keep-Alive 
Host: ServerName 

Antwort

0

Ich benutze dies und funktioniert gut (relevanter Teil von beforeSend Rückruf):

beforeSend: function (xhr) { 
         xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password)); 
       } 

btoa kodiert Ihre sensiblen Daten in der Kopfzeile.

Ich hoffe, es hilft.

+0

ist es nicht die Codierung, die das Problem ist, ist nur, dass die Kopfzeile nicht gesendet wird – ElenaDBA

+0

Ich habe verstanden, aber ich erinnere mich an das gleiche Problem, wenn ich versuchte, Benutzerauthentifizierung auf die gleiche Weise zu senden. –