Как обойти предварительную проверку в HTTP-сообщении со сложным типом мультимедиа с помощью Electron?

Мне нужно использовать конечную точку HTTP с использованием определенного типа носителя, и эта конечная точка не обрабатывает метод OPTIONS.

Я предполагаю, что это было бы невозможно с использованием обычных браузеров, но я считаю, что это должно быть возможно с помощью Electron, поскольку я могу выполнить тот же запрос POST с помощью Postman.

Какую структуру мне нужно использовать для этого?

Я не голосовал против. Но совсем не понятно, о чем вы спрашиваете. Что ожидает эта конечная точка? Очевидно, не CORS, потому что тогда он будет понимать ОПЦИИ ... используя JavaScript, вы можете сгенерировать практически любой HTTP-запрос ... ничего общего с электроном, и вам не нужен почтальон.

mb21 07.09.2018 14:28

Я упомянул почтальона, потому что он был разработан в Electron, поэтому я знаю, что в Electron можно делать все, что я хочу. Конечная точка ожидает настраиваемый медиатип, если я выполняю запрос POST с использованием angular или любой инфраструктуры javascript с использованием обычного браузера, она отправляет предварительный метод OPTIONS, который конечная точка не поддерживает

pca1987 07.09.2018 14:43
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
480
1

Ответы 1

У меня все заработало. Если вы используете Angular, jQuery или любой Javascript внутри Electron, он будет использовать возможности браузера и, следовательно, также будет отправлять предварительную проверку OPTIONS, если POST имеет сложный тип мультимедиа, что было в моем случае.

Если вы используете http API Electron, он этого не делает. Документация здесь https://electronjs.org/docs/api/client-request

Вот мой угловой код POC, использующий его:

  const { net } = require('electron').remote;
  const request = net.request(requestApi);

let requestApi = {
    method: 'POST',
    headers: {
      'Content-Type': 'custom complex media type here',
      'Authorization': 'Bearer ' + accessToken // if api is secured
    },
    protocol: 'https:',
    hostname: 'hostname.com',
    port: 443,
    path: '/api/path/to/method'
  };

  request.on('response', (response) => {
    console.info(`STATUS: ${response.statusCode}`);
    resolve(response);

    response.on('error', (error) => {
      console.info(`ERROR: ${JSON.stringify(error)}`);
      reject(error);
    })
  });

  request.end(JSON.stringify(usageData));

Надеюсь это поможет.

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