jQuery的AJAX不会使HTTPS请求(jQuery ajax won't make H

2019-07-04 02:45发布

我做我的网站上一些非常基本的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的从301重定向http://larsendt.com到https://larsendt.com ,但我看不出这会破坏任何东西(我相信这是相当标准的做法)。

如果你想有一个现场演示,破碎的版本仍高达在https://larsendt.com/jsontest 。

无论如何,在此先感谢。

Answer 1:

尽量固定网址,以便您的服务器没有重定向

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


Answer 2:

301永久重定向可能会发生。 要检查运行小提琴手,看结果列。 通常在200码,但是我发现了一个301码。

https的 jQuery的AJAX调用被重定向到HTTP,造成混合内容错误。



文章来源: jQuery ajax won't make HTTPS requests