Ich kann auf die (sichere) Website ohne Probleme zugreifen, wenn ich die HTTP.get
und HTTP.post
Befehle vom Server ausführen, Header verwenden, um mich über ein Cookie zu identifizieren und mit den erforderlichen Anmeldeinformationen. Ich verwende das HTTP-Paket.Meteor: Zugriff auf eine Website vom Client mit HTTP.get (CORS Fehler)
Allerdings möchte ich das gleiche vom Client selbst passieren. Hier ist der Code auf der Client-Seite:
HTTP.get('https://www.securewebsite.com/login1.php', {
timeout: 30000,
headers: {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Upgrade-Insecure-Requests": "1",
// "DNT": "1",
"Accept-Language": "en-US,en;q=0.8,de;q=0.6"
// 'Accept-Charset' : 'utf-8',
// "Cookie": cookie
}
}, function (err, res) {
if (err) {
// some error handling code
} else {
// doing something with res
}
});
musste ich kommentieren Sie die Accept-Charset
, DNT
und cookie
Header, da sie als unsicher gekennzeichnet wurden. Fehlermeldung für DNT zB: Refused to set unsafe header "DNT"
(auch für andere Header)
Doch selbst dann bekomme ich OPTIONS
im Browser-Inspektor angezeigt (Chrome) und die folgende Fehlermeldung erscheint:
XMLHttpRequest cannot load https://www.securewebsite.com/login1.php. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 501.
Bitte beachten als https://www.securewebsite.com/login1.php
ist nur ein Beispiel, nicht die echte Website, die ich anrufe. Sie können http://www.awest.de/
als ein echtes Beispiel versuchen. Wie ich von der Fehlermeldung sehe, rufe ich sie gerade von lokal an.
Irgendeine Idee, wie ich das erreichen kann? Fehle ich einen bestimmten Header? Ich habe auch andere URLs (einschließlich meines eigenen Webspace) ausprobiert, aber ich bekomme die gleiche Fehlermeldung, so dass es nichts mit der URL zu tun hat, von der ich versuche abzurufen. Es scheint mehr ein Browser-Problem zu sein, wo es eine x-Skript-Ausführung stoppen will (wenn ich es richtig verstehe von dem was ich lese).
Um zu erklären, warum ich vom Browser aus darauf zugreifen möchte: Ich möchte nicht gegen die Serverrichtlinie verstoßen und daher sollten Anfragen von der IP-Adresse des Clients und nicht von meiner IP-Adresse kommen. Ich verwende zwei Apps, eine hostet nur den clientseitigen Code und eine zweite hostet nur serverseitigen Code.
Danke für Ihre Hilfe im Voraus, geschätzt!
Hinzugefügt: options = { Timeout: timeoutMs, Header: { "Übernehmen": „text/html, application/xhtml + xml, application/xml; q = 0.9, image/webp, */*; q = 0.8 ", " Upgrade-Unsichere-Anfragen ":" 1 ", " Accept-Language ":" en-US, en ; q = 0.8, de; q = 0.6 ", " Zugriffssteuerung-Zulassen-Ursprung ":" * ", " Zugriffssteuerungs-Erlauben-Methoden ":" GET, POST ", " Zugriffssteuerung- Zulassen-Header ":" X-Requested-With " } }; dazu bekomme ich aber die gleiche Fehlermeldung von der Preflight-Anfrage – a4xrbj1
@ a4xrbj1 Was passiert, wenn man einen Header innerhalb 'HTTP.get ('? –
) löscht? Es gibt keinen Unterschied wenn ich jeden Header in eine Variable namens options schreibe oder ich behalte das Objekt direkt im HTTP.get - das Problem ist nicht das Format. – a4xrbj1