我无法使用XMLHttpRequest执行发布请求

时间:2018-05-01 22:47:39

标签: javascript xmlhttprequest

我无法使用XMLHttpRequest执行发布请求(代码将在客户端运行)。 这是我的代码: (基本上我想检查任何python代码的输出,通过向我做这个工作的在线服务发送一个帖子请求)

var code = "print('hey')"
var input = "";

var data = new FormData();
var params = {'LanguageChoiceWrapper': "24",
        'EditorChoiceWrapper':'1',
        'LayoutChoiceWrapper':'1',
        'Program': code,
        'Input': input,
        'Privacy': '',
        'PrivacyUsers': '',
        'Title': '',
        'SavedOutput':'',
        'WholeError':'',
        'WholeWarning': '',
        'StatsToSave': '',
        'CodeGuid': '',
        'IsInEditMode': 'False',
        'IsLive': 'False'
        }

for (name in params) {
  data.append(name, params[name]);
}

var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://rextester.com/rundotnet/Run', true);
xhr.onload = function () {
    // do something to response
    console.log(this.responseText);
};
xhr.send(data);

运行时,会发生此错误 enter image description here

当通过邮递员发送相同的信息时它工作正常并返回我想要的所有内容...我遇到了多个线程,但我无法通过替换“url”和“params”字段来使其工作他们的答案。 这是我遇到的两个主题: 1 2

1 个答案:

答案 0 :(得分:0)

您正在使用HTTPS协议连接到主机,默认情况下连接到端口443。

正如错误所示,连接超时。这意味着服务器不接受该端口上的连接。

我尝试使用端口443 telnet域rextester.com并返回连接错误(与浏览器相同),因此服务器没有打开端口443,这是HTTPS请求的默认值:

enter image description here

尝试使用以下网址发出HTTP请求:

http://rextester.com/rundotnet/Run

HTTP具有默认端口80,服务器实际上已打开:

enter image description here

请注意,这将尝试向该域发出请求,但如果目标域不允许跨源请求,则如果请求来自其他域,则该域请求将无效。这是不可修复的,因为无法避免安全措施(如果使用“客户端”,您正在谈论浏览器)。