Ssl &引用;主机名不';“t匹配”;在Pythonywhere中使用请求时

Ssl &引用;主机名不';“t匹配”;在Pythonywhere中使用请求时,ssl,python-requests,pyopenssl,Ssl,Python Requests,Pyopenssl,编辑:我解决了问题,请参见答案中的链接 我正在使用XMLHttpRequestAjax API将不同网站的数据发送到我们的Python服务器。 奇怪的事情发生了:根据网站的不同,我们要么发送成功,要么收到这个错误 POST https://canecto.pythonanywhere.com/api/ 500 (Internal Server Error) 即使加载了相同的代码。 我试图在Chrome中通过JavaScript控制台手动打开请求并发送数据,但没有任何变化 下面是代码段的外观:

编辑:我解决了问题,请参见答案中的链接

我正在使用XMLHttpRequestAjax API将不同网站的数据发送到我们的Python服务器。 奇怪的事情发生了:根据网站的不同,我们要么发送成功,要么收到这个错误

POST https://canecto.pythonanywhere.com/api/ 500 (Internal Server Error)
即使加载了相同的代码。 我试图在Chrome中通过JavaScript控制台手动打开请求并发送数据,但没有任何变化

下面是代码段的外观:

var url = "https://canecto.pythonanywhere.com/api/";
var xmlHttpPost = new XMLHttpRequest();
xmlHttpPost.open("POST", url, true);
xmlHttpPost.setRequestHeader("Content-type", "application/json");

var postData = {
    page_url: window.location.href,
    time_on_page: activeTime,
    cookie: cookie,
    /* some variables */
};
xmlHttpPost.onreadystatechange = function() {
    if (xmlHttpPost.readyState == 4 && XMLHttpRequest.DONE) {
            console.log('');
    }
};

/* send data */
xmlHttpPost.send(JSON.stringify(postData));
我读到问题不应该是客户端JavaScript

如果我在服务器端检查,对于行
requests.get(page\u url,headers=HEADER,timeout=10)
(我尝试访问页面的地方),我会得到以下日志:

我在网上读到,这可能与SSL验证有关,但我对此知之甚少。我试图检查其他类似的问题,但我没有找到答案


有没有人经历过类似的事情并成功地解决了它?

它仍然使用Python的人<2.7.9:为我工作。Python 2中不支持SNI,这意味着您应该遵循这样的答案,并使请求与SSL证书验证一起工作。

似乎我在中发现了一些有趣的东西,但我需要检查在安装需求后是否工作。“这些说明”404。@rschwieb不幸的是,url已经消失,但我把这条评论的出处联系了起来。在那里,您可以找到it工作的需求。