编辑:我解决了问题,请参阅答案中的链接。
我正在使用 XMLHttpRequest AJAX API将来自不同网站的数据发送到PythonAnywhere中的服务器。 奇怪的事情发生了:取决于网站,我们发送成功或者我们收到此错误
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));
我读到here该问题不应该是客户端JavaScript。
如果我在服务器端检查,对于行requests.get(page_url, headers=HEADER, timeout=10)
(我尝试访问该页面的地方),我会得到这个日志:
我在Python request library上读到它可能与SSL验证有关,但我对它几乎没有任何线索。我试图检查其他类似的问题,但我没有找到答案。
有没有人经历过类似的事情并成功解决了它?
答案 0 :(得分:2)
它仍然使用Python< 2.7.9 :this answer为我工作。 Python 2不支持SNI,这意味着您应该遵循这样的答案,并these requirements使请求与SSL证书验证一起使用。