0

次のように、反応で axios を使用して GET リクエストを作成しました。

 searchCity: function(){
    return axios.get('https://autocomplete.wunderground.com/aq?query=lond' + '&format=JSON')
  }

ただし、次のエラーが表示されます。

https://autocomplete.wunderground.com/aq?query=lond&format=JSON. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

これはパブリック API であり、アクセス キーなどは必要ありませんが。この URL から JSON データを取得する別の方法はありますか?

4

1 に答える 1

1

だから私はこれに約1時間費やしました!最終的に、特定のサーバーは以下を実行していないようです。

Access-Control-Allow-Origin: *

ただし、一部のサーバーは、標準の JSON 要求ではなく JSONP と互換性があります。ただし、サーバーは JSON-P もサポートする必要があります。URL に format=jsonp が含まれているにもかかわらず、サーバーは JSON-P ではなく JSON で応答しています。

この場合、実際にそうでした。次のコードは、react-jsonp を使用して機能します。

searchCity: function(){
    return jsonp('https://autocomplete.wunderground.com/aq?query=lond', { param: 'cb' }, function (err, data) {
        console.log(data.RESULTS);
    })

この問題の詳細については、次の場所を参照してください。

予期しないトークン: JSON 文字列を解析しようとしたとき

于 2016-10-11T08:45:03.510 に答える