これまでにこのGoogle APIをフェッチすると、コンソールログ内にこのエラーメッセージが表示されるのですが、何が間違っていますか?React Fetch Google API
リソースの読み込みに失敗しました:サーバは404()のステータスで応答しました localhost /:1フェッチAPIにはhttps://googleapis.com/books/v1/volumes?q=harry%20potterをロードできません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。 Origin 'http://localhost:3000'はアクセスできません。レスポンスにはHTTPステータスコード404があります。不必要なレスポンスが必要な場合は、リクエストのモードを 'no-cors'に設定して、CORSを無効にしてリソースをフェッチします。
Code~
import React, { Component } from 'react';
import { FormGroup, FormControl, InputGroup, Glyphicon } from 'react-bootstrap';
class Global extends Component {
constructor(props) {
super(props);
this.state = {
query: ''
}
}
search() {
const BASE_URL = 'https://googleapis.com/books/v1/volumes?q='
fetch(`${BASE_URL}${this.state.query}`, {
method: 'GET',
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json',
})
.then(response => response.json())
.then(json => console.log(json));
}
render() {
return(
<div className="Global">
<h2> Book Explorer!</h2>
<FormGroup>
<InputGroup>
<FormControl
type="text"
placeholder="Search for a book"
onChange={event => this.setState({query: event.target.value})}
onKeyPress={event => {
if (event.key === 'Enter') {
this.search();
}
}}
/>
<InputGroup.Addon onClick={() => this.search()}>
<Glyphicon glyph="search"></Glyphicon>
</InputGroup.Addon>
</InputGroup>
</FormGroup>
</div>
)
}
}
export default Global;
を返します。バインド(this);あなたが提起したものと同じconstに入れてください。しかし私はまだこのメッセージを受けています。リソースを読み込めませんでした:サーバーが404のステータスで応答しました(見つからない) 2bundle.js:37487 GET https://googleapis.com/books/v1/volumes?q=hi 404() –
API URLはどうですか404:https://googleapis.com/books/v1/volumes?q=harry%20potter私は試しましたが見つかりませんでした。 – thinhvo0108
私の検索バーにあった元の投稿のちょっとシン。だから、私はちょうど良い理解は、私はGoogleの本のAPIに基づいているアプリケーションを構築している。検索バーに書籍名を入力すると、Google APIから文字列や値が返されます。ハリー・ポッターが404が見つからないと言う唯一の理由は、私のconst URLが間違っているかどうか、または私が間違ったことや間違ったことがあるかどうかがわかりません。 –