我在我的网站上做了一些非常基本的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,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.
无论如何,提前谢谢.
尝试修复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