2017-07-07 16 views
1

私はaxiosを使用して、私のreactJSアプリでlinkpreview.net APIを実装しようとしているが、それはCORSエラーfollowin私を与えangleAsのtrustAsResourceUrl()のようなaxiosで、linkpreview.netでCORSエラーを回避する方法はありますか?

クロスオリジン・リクエストブロックされた:同一生成元ポリシーは http://api.linkpreview.net/?callback=JSON_CALLBACK&q=abc.xyz&key=で リモートリソースを読ん禁止します「私のここには キーがあります。 (理由:CORSヘッダー 'Access-Control-Allow-Origin' がありません)。

は、ここに私のaxiosコードです

axios({ 
      method:'post', 
      url:"http://api.linkpreview.net/?callback=JSON_CALLBACK&q="+res+"&key="+UserSetting.fetchUrlKey, 
      headers: {'Access-Control-Allow-Origin': '*'}, 
      data: data 
     }) 
     .then(response => { 
     console.log(response); 

     }) 
     .catch((error) => { 
     console.log(error); 
     }) 

私が何か間違ったことをやっているなら、私に知らせてください!彼はまた、そうNPMパッケージjsonp

を使用してjsonpため、別のレシピを提供してきたことでhttps://github.com/mzabriskie/axios/pull/15

を、あなたが試すことができます:Axiosはjsonp要求のためのサポートを提供しないであろうと、それはここでは言及されているいくつかの理由

+0

は私がCORSヘッダはJavaScript –

+0

に、私はlinkpreview.netのAPIを使用していない、あなたのアプリのバックエンドに設定されるべきだと思います。 https://www.linkpreview.net/ –

+0

をチェックしてください。 'dataType: 'jsonp''を設定しようとしましたか?なぜあなたはURLの代わりに 'q'と' key'をデータに渡さないのでしょうか? –

答えて

0

それとのようなものを使用します。

var j = require('jsonp'); 

j('http://api.linkpreview.net/?key=123456&q=https://www.google.com', function (err, data) { 
    if (err) { 
    console.error(err.message); 
    } else { 
    console.log(data); 
    } 
}); 
0

api.linkpreview.netは今、完全にCORSをサポートしていますので、あなたはもうJSONPを使用する必要はありません - シンプルでプリフライトの両方を。私はaxiosに慣れていないんだが、これはjQueryを使って動作するはずです:

$.ajax({ 
    url: "https://api.linkpreview.net?key=123456&q=https://www.google.com", 
     success: function(result){ 
      console.log(result); 
    } 
}); 
関連する問題