Egal, welche Methode ich versuche, Kopfzeilen in AJAX-Anruf und egal welchen Header ich jedes Mal setzen, wenn es eine Kopfzeile ist, mein AJAX-Anruf abgebrochen wird, und Anruf nicht gehen, und da ich Authorization-Header festlegen müssen, wenn keine Header besteht, rufen Sie kehrt 401.
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var authorizationToken=1;
$.ajax
({
type: "GET",
url: "http://<someURL>?$format=json",
beforeSend: function (request)
{
request.setRequestHeader("Authority", authorizationToken);
},
success: function(){
alert('Thanks for your comment!');
},
error: function (a,b,c,d){
alert('Try again please');
}
});
});
});
</script>
</head>
<body>
<button>Send an HTTP GET request to a page and get the result back</button>
</body>
</html>
wenn kein Header vorhanden ist, Anruf wird nicht abgebrochen und 401 wird zurückgegeben. Kannst du mir bitte sagen, was in AJAX falsch ist? Da dies im Rest-Client mit demselben Server funktioniert, denke ich nicht, dass es sich um ein Serverproblem handelt.
Wird die Anfrage an den Server weitergeleitet? Kannst du es mit etwas wie Fiddler sehen? (Bedenken Sie, dass Sie keine Localhost-Anfragen mit Fiddler sehen können, also müssen Ihr Client und Server auf 2 verschiedenen Hosts laufen). – Neil
http://stackoverflow.com/questions/27990010/authorisation-header-appended-only-once-in-ajax-cors-request – Luka
Verwenden Sie die Entwickler-Tools in Ihrem Browser. Schau auf die Konsole, zeigt es irgendwelche Fehlermeldungen? Sehen Sie sich die Registerkarte Netzwerk an. Wird die Anfrage gesendet, die Sie erwarten? Ich wette momentan auf einen Verstoß gegen die gleichen Ursprungsrichtlinien. – Quentin