2

サーバーからデータを取得して表示するための GUI として Webkit を使用する Qt アプリケーションを作成したいと考えています。Linux と OS X では問題なく動作しましたが、Windows では XMLHttpRequest が常にステータス 0 を返し、その理由がわかりません。私が使用するpyqtコードは次のとおりです。

import sys, os
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
web = QWebView()
web.page().settings().setAttribute(QWebSettings.LocalContentCanAccessRemoteUrls, True)
path = os.path.abspath(os.path.join(os.path.dirname(__file__), 'index.html'))
url = "file://localhost/" + path
web.load(QUrl(url))
web.show()
sys.exit(app.exec_())

そして、これが私がテストに使用するhtml HTML / JSです:

<!DOCTYPE html>
<title>TEST</title>
<h1>TEST</h1>
<div id="test"></div>
<script type="text/javascript">
    function t(text) { document.getElementById("test").innerHTML = text }

    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if(this.status != 0)
            t(this.responseText)
        else
            t("Status is 0")
    }
    xhr.open("GET", "https://jeena.net/")
    xhr.send()
</script>

Linux では、WebKit ビューを含む新しいウィンドウを開き、html ローカル index.html ファイルをロードしてレンダリングし、TEST 見出しを表示します。その後、XMLHttpRequest コードを実行して Web サイトのコンテンツを取得し、準備された div に innerHTML で設定します。

Windowsでは、タイトルをロードして表示しますが、xhrコードを実行すると、ステータスは常に0になり、何をしても変更されません。

私が理解LocalContentCanAccessRemoteUrlsしている限り、xhrがWindowsでもリモートWebサイトからそのコンテンツを取得できるようにする必要がありますが、これが機能しない理由は何ですか? Windowsマシンとpython v2.7でQtバージョン4.9.6を使用しています。

4

1 に答える 1