2016-10-27 12 views
0

「をフェッチ」が空約束を返す反応し、などの要求送信するためにフェッチされた:要求が正常に送信されますが、私が働いて使用

fetch(`http://www.bilibili.com/index/catalogy/1-3day.json`,{ 
     mode: "no-cors" 
    }).then(r => r.json()).then(r => { 
     console.log(r); 
    }).catch(err => {console.log(err);}) 

をし、応答が右ネットワーク]タブにある

それはというエラーをスロー:

SyntaxError: Unexpected end of input 
at SyntaxError (native) 
at http://127.0.0.1:8888/js/video.bundle.js:30174:15 

そして、私は約束を記録しようとすると、奇妙なオブジェクトのように見える:

Response {type: "opaque", url: "", status: 0, ok: false, statusText: ""…} 

this is the picture

誰かが助けることができますか?私は本当にあなたがcross origin resource sharing (CORS)をサポートしていない外部のサーバに要求をすることはできません。この

+0

私はあなたがそのウェブサイトは、あなたがそれのリソースを使用して望んでいないことが判明すると思う...つまりそれは、CORSの問題 –

+0

だ、それは正しいフォーマットされたJSONで応答されていますか?代わりに戻りres.json() 'の';)( 'リターンres.textを試す問題 – deadlock

+0

@deadlockを特定するために、'、OPは、応答は、右のネットワークtab'である '述べて - それは、私が試したCORS問題 –

答えて

0

と混同しています。

要求にno-corsモードを設定することで、明示的にそのコンテンツにアクセスできずに副作用を要求するためにサーバーを教えてください。これは、サードパーティのサイトからHTMLに<img>というタグを配置し、その内容にアクセスできない場合と似ています。これは、呼び出し元のコードには不透明です。

あなたは、サーバー側でそのJSONをダウンロードし、問題を回避するために、独自のサーバからそれを提供する必要があります。

+0

これについてのお返事ありがとうございますが、今は新しい問題に直面しています。nodejs、pythonまたはjavaプログラムでデータを要求し、異なるエンコード方法( 'utf8'、' gb2312 '...)、それは私がブラウザに表示されるようにしたいと思う正しいデータを得ることができません、それは素晴らしいです。 – RockSAMA

+0

nodejs: '' ' var request = require(" request "); var http = require( "http"); var url = "http://www.bilibili.com/index/catalogy/1-3day.json"; http.get(URL、関数(RES){ VaRのCC = "" res.setEncoding( "UTF-8"); res.on( "データ"、関数の(c){ CC + = C }) '' '(' end '、function(){ console.log(cc); } ) – RockSAMA

関連する問題