Ich brauche einige Einsichten, die Folgendes verstehen: Ich versuche, Aufrufe an eine externe API zu machen, wo ich keine Kontrolle über den Server habe. Anbieter stellen mir ein statisches X-Auth-Token zur Verfügung.Unterschiede in Antwortheadern verstehen
Mit einem PHP-Skript, das ich bin in der Lage JSON Array abzurufen, wie erwartet:
$headers = array();
$headers[] = 'X-Auth-Token:myValidKeyString';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
Nun möchte Ich mag die API von Client-Seite mit Ajax-Aufruf für den Zugriff auf und vielleicht einzubetten, dass in Angular. Aber hier ist, was ich bekomme.
Wenn ein Testmodul (DHC von Restlet in Chrome) Mit Anfrage Werke erhalten und zurück 200 und die folgenden Antwort-Header:
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Connection:keep-alive
Content-Type:application/json;charset=utf-8
Date:Fri, 03 Feb 2017 08:21:49 GMT
Expires:0
Pragma:no-cache
Server:Apache-Coyote/1.1
transfer-encoding:chunked
X-Application-Context:application:qa:8080
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block
Mit folgenden Anforderungs-Header:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8,fr;q=0.6
Connection:keep-alive
DNT:1
Host:myApihost.com
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
X-Auth-Token:my-key-string
Dann mit der folgenden Funktion
$.ajax({
type: 'GET',
url: 'myApihost.com',
headers: {'X-Auth-Token' : 'my-key-string'},
success: function (dxddata) {
console.log(dxddata);
}
});
wiederum
Stand 401 mit Antwortheader:
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Connection:keep-alive
Content-Length:55
Content-Type:application/json;charset=utf-8
Date:Fri, 03 Feb 2017 08:58:25 GMT
Expires:0
Pragma:no-cache
Server:Apache-Coyote/1.1
X-Content-Type-Options:nosniff
X-Frame-Options:DENY
X-XSS-Protection:1; mode=block
und Request-Header an:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8,fr;q=0.6
Access-Control-Request-Headers:x-auth-token
Access-Control-Request-Method:GET
Connection:keep-alive
DNT:1
Host:myApihost.com
Origin:null
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36
Wie kann ich in und die Header-X-Auth-Token:my-key-string
ordnungsgemäß übergeben nennen?
Nicht ich deaktiviere das CORS-Steuerelement, um zu diesem Zeitpunkt Cross Origine Fehler zu vermeiden.
Dank @Francesco, verwende ich bereits diese Erweiterung. Es verhindert, dass ich gegen die Kreuzursprungspolitik ankämpfe. Mein Problem hier ist, wie man das "X-Auth-Token" als Header-Schlüsselwörter übergibt. Wie es derzeit in "Access-Control-Request-Header" endet – Benoit