2017-05-02 10 views
0

DockertoolsボックスからqBittorrentをビルドします。そしてqBittorrentにはAPIがありますトレントリストを取得してください。JSON APIフォームドッカーホストを取得する

GET /query/torrents HTTP/1.1 
User-Agent: Fiddler 
Host: 127.0.0.1 
Cookie: SID=your_sid 

しかし、私はこのホストでそれを実行します:それはそのようなものだhttp://192.168.99.100:8080/ので、私は私が望むものをキャッチするためにはJavaScriptのloadJSON()を使用します。しかし、それは常に失敗です。 コンソールでこの:ここ

XMLHttpRequest cannot load http://192.168.99.100:8080/query/torrents?filter=uploading&appid=f782f1c06749ea791dcb5d22219adf068a0d16a5a2c7b6686b17459562eb6b4f. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

私のコード:

var torrent_peer; 

function loadJSON(url, callback) { 
    var xobj = new XMLHttpRequest(); 
    if (xobj) { 
    xobj.overrideMimeType("application/json"); 
    xobj.open('GET', url, true); // Replace 'my_data' with the path to your file 
    xobj.withCredentials = true; 
    xobj.onreadystatechange = function() { 
     if (xobj.readyState == 4 && xobj.status == "200") { 
     callback(xobj.responseText); 
     } 
    }; 
    xobj.send(); 
    } 
} 

function load() { 
    loadJSON("http://192.168.99.100:8080/query/torrents?filter=uploading&appid=f782f1c06749ea791dcb5d22219adf068a0d16a5a2c7b6686b17459562eb6b4f", function(response) { 

    var actual_JSON = JSON.parse(response); 
    console.log(actual_JSON); 
    }, 'jsonp'); 
} 

私はいくつかの質問を読んで、それが動作しません。だから誰でも私を助けることができます。どうもありがとうございます !

答えて

0

これは、APIが許可されたオリジン外でAPIにアクセスできるヘッダーを指定していないためです。これはおそらくChromeのセキュリティ保護です。試してみてください

chrome --disable-web-security

ただし、これを有効にすると、ウェブサイトに脆弱であることに注意してください。

これを修正するもう1つの方法は、ヘッダーをアプリケーションのAPIに追加することです。私はあなたのアプリケーションがそれを追加することを許可するかどうかはわかりません。

Access-Control-Allow-Origin: *

+0

このクロムを実行する方法--disable-web-security –

関連する問題