2016-09-18 1 views
1

Ich versuche, API in Javascript zu schlagen, aber Fehlercode 401 erhalten, aber auf Postbote funktioniert es gut.Fehler 401 beim Anfordern von JQuery

Hier ist mein Javascript-Code

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>ABC</title> 
    <script src="jquery-3.1.0.min.js"></script> 
    </head> 

     <body onload="test()"> </body> 

     <script type="text/javascript"> 

     function test() 
       { 
       var credential = '[{"id":"recording", "userId":"administrator", "password":"Expert111"}]' 
       $.ajax({ 
         url: "http://xx.xx.xx.xx/api/rest/authorize", 
         type: "POST", 
         data: { id: "recording", userId: "administrator", password: "Expert111" }, 
         dataType: "jsonp", 
          success: function (result) { 
           switch (result) { 
            case true: 
             alert("Success"); 
             break; 
            default: 
             alert("fail:"+result); 
           } 
          }, 
          error: function (xhr, ajaxOptions, thrownError) { 
          alert("status: " +xhr.status +", ajaxOptions:"+ajaxOptions +",Error:" +thrownError); 
          }, 
          //data : credential 
         }); 
        }; 
    </script> 
    </html> 

folgt Postbote Schnappschuss (adaequat) über Code Ergebnis der Anfrage

enter image description here

folgendes:

enter image description here

enter image description here

+1

Ich bemerke in deinen * postman * Daten, dass du die Parameter 'callback' oder' _' nicht eingibst - also testet du nicht wirklich das Gleiche –

+0

Kannst du mich bitte dazu bringen, Rückruf oder _Parameter einzuschließen? – Touqeer

+0

Obwohl der Code scheint gut, bitte geben Sie die URL, so dass wir versuchen können, an unserem Ende auch, indem Sie es oder eine Dummy-URL einrichten, falls Sie nicht wollen, das Original zu teilen. – MGA

Antwort

0

Ich weiß nicht, wie Ihr Server die Autorisierung verarbeitet, aber es sieht so aus, als ob Sie es nicht bestanden haben. 401 bedeutet - Nicht autorisiert: Zugriff wird aufgrund ungültiger Anmeldeinformationen verweigert. Meiner Meinung nach müssen Sie Autorisierungsheader angeben.

var ah = "Basic "+atob("administrator"+":"+"Expert111"); 

Und wie there als Authorization-Header gesetzt.

Darüber hinaus können Sie weitere Informationen über basic authentication und encoding to base64

prüfen, ob es nicht helfen wird, Sie mit fiddler überprüfen können, was Ihr Postbote an den Server sendet und Ihre Anfrage in der gleichen Art und Weise umzusetzen.

Verwandte Themen