【发布时间】:2012-11-13 10:52:25
【问题描述】:
我正在我的网站上做一些非常基本的 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 加载的,但 XMLHttpRequest 似乎是通过 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。
无论如何,提前致谢。
【问题讨论】:
-
您介意更改帖子的标题,以使有此查询的人不会登陆此页面..