私はTour of Heroesチュートリアルで働いています。角2 +ウェブAPI
私は、さらに小さなバックエンドとしてC#を使用してWeb APIを作成しました。上記のバックエンドに参加しようとすると、次のタブがまったく同じ道路にある場合でも、角がエラー404を返しません。
これはエラーです:
An error occurred Object { _body: Object, status: 404, ok: false, statusText: "Not Found", headers: Object, type: null, url: "http://localhost:58225/api/Character" }
私はコールの答えのログインしようとしました、私は、「[オブジェクトのオブジェクト]」を返しますが、私は、エラーメッセージそのものだと思います。
@Injectable()
export class CharacterService{
private charactersUrl = 'http://localhost:58225/api/Character';
constructor(private http:Http){}
getCharacters(): Promise<Character[]>{
alert("Getting Characters");
var my_data = this.http.get(this.charactersUrl)
.toPromise()
.then(response => response.json().data)
console.log("Resultat de l'appel = "+my_data);
return this.http.get(this.charactersUrl)
.toPromise()
.then((response => response.json().data as Character[]))
.catch(this.handleError);
}
ご覧のとおり、ここには何もありません。
/api/Characterは、自分の文字のリストを含むIEnumerableを返します。
public IEnumerable<string> GetAll()
{
List<Character> myCharacs = repo.Get().ToList();
List<String> myJsonCharacs = new List<string>();
foreach (var charac in myCharacs)
{
var cur = jsonConverter.Serialize(charac);
myJsonCharacs.Add(cur);
}
return myJsonCharacs;
}
私はさらにどのようにテストすると思いますか?私はこれに従うことによって、JSONのためのAPIの応答を変更した
:私は何かを逃したかどうかを確認するために約束して観測で読んだけど、これは私は考えることができ、最も簡単な例です:/
編集:How do I get ASP.NET Web API to return JSON instead of XML using Chrome?。私はそれを直接参照するとき
APIは今、これを返します。
["{\"characterName\":\"Azazel\",\"playerName\":\"Mulhouse\",\"game\":{\"name\":\"Call of Cthulhu\",\"BaseAttributes\":[{\"max\":18,\"value\":12,\"name\":\"appearance\"},{\"max\":18,\"value\":21,\"name\":\"constitution\"},{\"max\":18,\"value\":19,\"name\":\"strength\"},{\"max\":18,\"value\":17,\"name\":\"dexterity\"},{\"max\":18,\"value\":15,\"name\":\"power\"},{\"max\":18,\"value\":13,\"name\":\"size\"},{\"max\":18,\"value\":13,\"name\":\"intelligence\"},{\"max\":24,\"value\":12,\"name\":\"education\"}],.....
には差は行われません。
また、答えはパスに対して404であるため、問題の形式は答えの形式には関係ありませんが、より角度の構成には関係していると考えられます(これは答えのサンプルです。どうすればこれをチェックできますか?
編集:オブジェクトの構造の違いによってこの404エラーが発生する可能性がありますか?サーバーから来る私のjsonキャラクタがangular2で定義されたjsonキャラクタより多くのフィールドを持っている場合、どうなりますか?
は、WWWは大文字と小文字が区別され、あなたに
ブラウザで[http:// localhost:58225/api/Character](http:// localhost:58225/api/Character)に直接アクセスするとどうなりますか – PierreDuc
おそらく ' response.json()。data'の代わりにresponse.json()を使用します。まず – Alex
、JSONを返すようにC#web-apiをセットアップしてください! – mxii