私は自分のウェブサイトでかなり基本的な 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にあります。
とにかく、事前に感謝します。