Я не могу выполнить почтовый запрос с помощью 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.info(this.responseText);
};
xhr.send(data);

При его запуске возникает эта ошибка Я не могу выполнить почтовый запрос с помощью XMLHttpRequest

При отправке той же информации через почтальона он работает нормально и возвращает все, что я хочу ... Я столкнулся с несколькими потоками, но не смог заставить его работать, просто заменив поля 'url' и 'params' в их ответах . Вот две темы, которые я прочитал: 12

Заголовки контроля доступа не устанавливаются на стороне клиента. Они должны быть установлены удаленным сервером. Если их там нет и запрос направлен к другому источнику, вам нужно будет использовать прокси на сервере, который вы контролируете, или стороннюю службу.

charlietfl 02.05.2018 00:49

Консоль сообщает о тайм-ауте соединения и от попытки получить доступ к сайту самостоятельно: похоже, это так, если только веб-сайт не доступен через Интернет.

pschichtel 02.05.2018 00:51

Привет, мой ответ работает?

Jorge Fuentes González 14.05.2018 11:54

@Jorge Fuentes Gonzáles + -: / Когда я запускаю js-код на моем компьютере, он делает запрос, если вы проверяете вкладку «сеть», но он не возвращает никакого значения: /

ArthurQ 14.05.2018 14:05

Прочтите мой последний абзац. Это проблема, с которой вы столкнулись. Вы не можете сделать запрос с другим доменом, если целевой домен не позволяет вашему домену делать это. Это мера безопасности, которую невозможно преодолеть в браузерах по умолчанию. Найдите в Google информацию о CORS.

Jorge Fuentes González 14.05.2018 14:15

Привет, мой ответ что-то прояснил для этой проблемы?

Jorge Fuentes González 23.05.2019 09:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
110
1

Ответы 1

Вы подключаетесь к хосту с протоколом HTTPS, который по умолчанию подключается к порту 443.

Как сказано в сообщении об ошибке, время ожидания соединения истекло. Это означает, что сервер не принимает подключения к этому порту.

Я попытался установить telnet для домена rextester.com с портом 443 и вернул ошибку подключения (такую ​​же, как и в браузере), поэтому на сервере не открыт порт 443, который используется по умолчанию для запросов HTTPS:

Попробуйте сделать HTTP-запрос с этим URL-адресом:

http://rextester.com/rundotnet/Run

HTTP имеет порт по умолчанию 80, который фактически открыт сервером:

Обратите внимание, что это попытается сделать запрос к этому домену, но если целевой домен не разрешает запросы из разных источников, он не будет работать, если запрос сделан из другого домена. И это не исправить, так как невозможно обойтись без мер безопасности (если под «клиентом» вы говорите о браузере).

Другие вопросы по теме