当前位置: 首页 > 面试题库 >

jQuery ajax不会发出HTTPS请求

赫连彬炳
2023-03-14
问题内容

我在我的网站上做了一些非常基本的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获取损坏的版本。

无论如何,预先感谢。


问题答案:

尝试修复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


 类似资料:
  • 问题内容: 如何使用jQuery明确提出AJAX HTTPS GET请求?我正在尝试执行以下操作。在https页面上,我有一行代码,但是出现以下错误 如果相对资源来自https页面,为什么AJAX调用会尝试使用HTTP协议访问页面?如果$ .get(url)方法默认执行此操作,那么我如何使用jQuery进行显式的HTTPS GET请求?在http://forum.jquery.com/topic/

  • 我需要在我的AWS Lambda项目中使用Firebase AdminJava,但是当Firebase Auth Admin试图在谷歌服务器中获取公钥时,会抛出一个。我知道Firebase Admin配置正确,因为我可以在Tomcat实例中本地运行它,不用担心。 然后我尝试向测试API发出HTTPS请求,比如

  • 我正在尝试发出HTTPS post请求。 请说明是什么导致了错误

  • 我对斯威夫特还是个新手。我正在尝试制作一个HTTPS POST到HTTPS url的特定头。注意HTTPS而不是HTTP。我如何完成这件事?提前道谢。

  • 我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ

  • 您好,我尝试使用HttpsConnection从不和谐服务器获取响应,但服务器响应错误403,我不知道为什么,我在上面的JDK 13中尝试了这段代码并且有效,但我需要JDK 8,但在这个版本上由于某种原因它不起作用。 错误: 线程“main”java.io.IOException中的异常:服务器返回HTTP响应代码:403用于URL:https://discord.com/api/v9/users