私のDjangoサーバーを呼び出そうとしているAngular2 Appがあります。Angular2 CORSの問題ではなく、http.get(url)が有効なURLで404を返しています
私は、外部API呼び出しを行い、オブジェクトのリストを返さなければならないgetObjectsという関数を持っています。私は現在、私のサーバーからデータを正しく取得するXMLHttpRequestを作成しています。
しかし、私がHttp.http.get(url)を使ってリクエストをしようとするたびに、404エラーが表示されます。私はいくつかのHTTPヘッダーを試してみるだけでなく、サーバー上のいくつかの設定で遊んでみましたが、何が間違っているのか分かりません。
私は、Http.http.get()メソッドが私が気付いていない場面の中で何かをファンキーにしていると仮定します。奇妙なことは、私のブラウザのdev-networkタブには外部のブラウザにアクセスしようとする試みが表示されないことです。
この問題のお手伝いがあれば、私は追加のデバッグ情報を提供することができ、実際に正しい方向にポイントを使用することができます。
ng --version
angular-cli: 1.0.0-beta.24
node: 6.9.1
os: win32 x64
@angular/common: 2.4.3
@angular/compiler: 2.4.3
@angular/core: 2.4.3
@angular/forms: 2.4.3
@angular/http: 2.4.3
@angular/platform-browser: 2.4.3
@angular/platform-browser-dynamic: 2.4.3
@angular/router: 3.4.3
@angular/compiler-cli: 2.4.3
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
...
constructor(private http: Http) { }
getObjects(): Promise<Object[]> {
function httpGet(theUrl)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", theUrl, false); // false for synchronous request
xmlHttp.send(null);
return xmlHttp.responseText;
}
var x = httpGet(this.myUrl);
console.log(x); // This works perfectly and I see an entry on my server log
this.http.get(this.myUrl)
.subscribe(res => console.log(res));// This throws a 404 and I see no entry on my server logs nor in my browser network tab
var headers = new Headers({'content-type': 'application/json'});
this.http.get(this.myUrl, {headers: headers})
.subscribe(res => console.log(res));// This throws a 404 and I see no entry on my server logs nor in my browser network tab
return this.http.get(this.myUrl)
.toPromise()
.then(response => response.json().data as Object[])
.catch(this.handleError); //The original code that worked on an internal in-memory-api
}
404メッセージがアクセスできないURLを出力することは注目に値する。私がそのURLをクリックすると、それは動作し、私のサンプルコードに見られるように、XMLHttpRequest.open()は同じurl変数を使用しています。ので、URLはきれいにする必要があります。 他のライブラリを使用して接続することもできます。そのため、CORSの問題でも、APIサーバと関係してもいけません。 ご意見はありますか? – SuperTetelman
ちょうど同じ問題がありました。ありがとうございます – Dan