8

私は自分のウェブサイトでかなり基本的な jQuery ajax の作業を行っていますが、大量のトラブルが発生しています。

関連するコードは次のとおりです。

$(document).ready( function() {
    $("#getdatabutton").click( function() {
        $.ajax({
            url: "/jsontest/randomdata",
            type: "get",
            data: [{name:"ymax", value:$("#randomgraph").height()},
                   {name:"count", value:$("#countinput").val()},
                   {name:"t", value:Math.random()}],       
            success: function(response, textStatus, jqXHR) {
                data = JSON.parse(response);
                updateGraph(data);
                $("#result").html(response);

                if(data["error"] == "") {
                    $("#errorbox").html("None");
                }
                else {
                    $("#errorbox").html(data["error"]);
                }
            },
            error: function(jqXHR, textStatus, errorThrown) {
                $("#errorbox").html(textStatus + " " + errorThrown);
            }
        });
    });
});

ページは HTTPS 経由で読み込まれますが、XMLHttpRequests は HTTP 経由で送信されているように見えます。

URL を絶対 URL ( https://larsendt.com/jsontest/randomdata ) に 変更しようとしても、サイトの HTTP バージョンにリクエストが送信されます

当然、リクエストは別のプロトコルに送信されるため、ajax 呼び出しは失敗します (クロスドメインなど)。

Chromeによって報告されたとおり:

The page at https://larsendt.com/jsontest/ displayed insecure content from http://larsendt.com/jsontest/randomdata/?ymax=500&count=32&t=0.08111811126582325.

私が考えることができる唯一の他の関連情報は、nginx にhttp://larsendt.comからhttps://larsendt.comへの 301 リダイレクトを実行させていることですが、それがどのように何かを壊すのかわかりません (私はかなり標準的な慣行だと信じています)。

ライブ デモが必要な場合は、壊れたバージョンがまだhttps://larsendt.com/jsontestにあります。

とにかく、事前に感謝します。

4

2 に答える 2

14

サーバーがリダイレクトする必要がないように、URL を修正してみてください

url: "/jsontest/randomdata/" // there was a missing trailing /

// i.e.  https://larsendt.com/jsontest/randomdata?ymax=500&count=32&t=0.9604179110508643
// was going to https://larsendt.com/jsontest/randomdata/?ymax=500&count=32&t=0.9604179110508643
于 2012-11-25T23:49:11.413 に答える
1

301 パーマネント リダイレクトが発生している可能性があります。Fiddler を実行して確認するには、[結果] 列を確認します。通常は 200 コードですが、301 コードを見つけました。

https jquery ajax 呼び出しがhttpにリダイレクトされ、混合コンテンツ エラーが発生していました。

于 2016-08-24T00:30:04.393 に答える