まずはAPIを扱うのが初めてです。単純なAPIコール(CORS)が機能していない
私は自分のクライアント側とは別のドメイン(天気予報サービス)に最も基本的なAPI呼び出しをしようとしています。とりわけ、私はCORSに問題があり、正しいヘッダーがないなど、crossorigin.me(コード内のURLから明白になる)を介してコールを指示して回避策を試みました。
(これは、コードが、唯一の問題ではありません - コードのために、下にスクロール)しかし、私のコードは、現在、これは完全なコードであるに...
console.log(status); //returns 0
console.log(statusText); //returns an empty string
結果。
function createCORSRequest(method, url) {
xhr = new XMLHttpRequest();
//I work in Chrome, so I only included withCredentials, not accounting for other browsers
if ("withCredentials" in xhr) {
xhr.open(method, url, true);
}
xhr.send();
console.log(xhr.status); //returns 0
console.log(xhr.statusText); //returns empty string
}
createCORSRequest("GET", "https://crossorigin.me/https://www.metaweather.com/api/location/2459115");
あなたは直接サイトにアクセスした場合、https://crossorigin.me/https://www.metaweather.com/api/location/2459115は、私はこのメッセージを得る:起源を:ヘッダが必要です。コンソールでは、ステータスコード403が与えられますが、サーバーだけがヘッダーにアクセス/アクセスでき、I(コーダー)はできません。
リクエストが送信される前にステータスを読み取ろうとしているだけです。あなたは応答を待つ必要があります。 – Quentin
"私は、サーバーだけがヘッダーを制御/アクセスできることを読んだ" - HTTPメッセージにヘッダーがある。 HTTPリクエストにはヘッダーがあります。 HTTP応答にはヘッダーがあります。サーバーはあなたのHTTPリクエストに 'Origin'ヘッダーが含まれていないと訴えています。これは、XMLHttpRequestで送信しなかったためです。 – Quentin
@Quentin on line 2、私はxhrをXMLHttpRequestとして定義しています。なぜXMLHttpRequestではないのですか?ありがとうございました – thesystem