gpt4 book ai didi

javascript - 将数据从 HTTPS 页面发送到本地主机服务器

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:15 24 4
gpt4 key购买 nike

我想知道从浏览器中加载的 HTTPS 网页向本地主机上运行的服务器发送数据的最佳方式是什么。目前我有一个同时适用于 HTTP 和 HTTPS 页面的解决方案,但是对于 HTTPS 页面,浏览器将输出一个 Mixed Content 警告(它应该如此)。这可以通过更改浏览器设置来绕过,但我不希望用户这样做。这是我通过书签加载到浏览器中的 javascript(不确定这是否是最好的方法,但它独立于浏览器):

    function sendLocalPOST(player, song) {
var url = "http://localhost:13337/";

$.ajax({
type: "POST",
crossdomain: true,
contentType: "application/json; charset=utf-8",
url: url,
dataType: "json",
data: { 'player': player, 'song': song },
success: function (data) {
}
});
}

以下是 C# 服务器代码中的一些重要片段:

    public WebAppHandler()
{
// Other non-important stuff
listener = new HttpListener();
listener.Prefixes.Add("http://localhost:13337/");
}

public void pollForSongChanges()
{
try
{
listener.Start();
}
catch (HttpListenerException)
{
return;
}
while (listener.IsListening)
{
var context = listener.GetContext();
ProcessRequest(context);
}
listener.Close();
}

public void start()
{
pr = new Thread(new ThreadStart(pollForSongChanges));
pr.Start();
}

还有一个question我在 stackoverflow 上看到有一个很好的答案(已接受的答案),它要求您将 SSL 证书绑定(bind)到您的应用程序,但这是否意味着我必须为本地主机服务器获得一个实际受信任的 SSL 证书才能拥有它在其他计算机上开箱即用?

也许我做错了,只是想知道是否有更好的方法。感谢您的回答。

@AlexeiLevenkov,你的意思是这样的吗:

    function postToIframe(data) {
var url = "http://localhost:13337/";
var target = "npiframe";

$('body').append('<form action="' + url + '" method="post" target="' + target + '" id="postToIframe"></form>');
$.each(data, function (n, v) {
$('#postToIframe').append('<input type="hidden" name="' + n + '" value="' + v + '" />');
});
$('#postToIframe').submit().remove();
}

最佳答案

基本上,您不能这样做。因为它是黑客攻击。

但是,如果您可以修改客户端的主机文件,则将本地主机路由到“yourdomain.com”并为“yourdomain.com”生成 ssl 证书。

或者您可以在本地主机服务器中创建代理服务器( https://targetdomain.comhttp://localhost )。

关于javascript - 将数据从 HTTPS 页面发送到本地主机服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31305234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com