0

jqueryajaxを使用してCGIから値を取得しようとしています。自分のサーバー上にないため、CGIの設定を変更できません。

CGIについて私が知っているのは、これをブラウザのアドレスバーに直接テープで貼り付ける場合です。

「http://otherdomain/cgi-bin/getvalue.exe?value」

次に、応答値、つまり1234を取得します。これは、空白のブラウザウィンドウに表示されます。

次のajax呼び出しで、firebug-> network-> responseタブ(1234)で応答値を取得します。しかし、JavaScriptの値にアクセスできません。console.log(data)は「undefinded」を返すだけです。

javascriptで値をキャッチする方法はありますか?

パスワード(Cookie)もCGIに送信する必要があるため、ajaxリクエストをdataType:"script"として送信する必要があると思います。dataType: "text"を選択した場合、Cookieからのパスワードはリクエストヘッダーで送信されません。

    $.ajax({
        type: "GET",
        url: "http://otherdomain/cgi-bin/getvalue.exe?value",
        crossDomain: true,
        cache: true,
        dataType: "script",
        success: function(data, textStatus, jqXHR) {
            console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log(errorThrown);
            console.log(textStatus);
            console.log(jqXHR);         
        }   
    });
4

1 に答える 1

1

同一オリジン ポリシーにより、AJAX はクロス ドメイン リクエストを許可しませんJSONP。AJAX を使用してクエリを実行するには、サーバーにプロキシを設定する必要があります。これにより、要求が他のドメインに送信され、受信した応答が AJAX 呼び出しに返されます。

于 2012-04-04T20:57:26.690 に答える