VSCode перекрестный запрос внутри WebView - PullRequest
0 голосов
/ 25 апреля 2019

Я работаю над расширением, которое основано на VSCode WebView .Расширение делает интеграцию с системой отслеживания проблем через HTTP API, как Jira.Я хочу отобразить информацию о проблеме в WebView и создать несколько форм для комментариев и изменения статуса проблемы.Я не хочу использовать передачу сообщений между расширением и WebView.Когда я пытаюсь создать HTTP-запрос к API внутри WebView, я получаю сообщение об ошибке:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Сервер не поддерживает Access-Control-Allow-Origin для источника с нулевым или локальным именем.

Способ создать HTTP-запрос от WebView к серверу, игнорируя отсутствующий заголовок Access-Control-Allow-Origin?Может быть, я могу настроить некоторые политики для панели WebView?Или создать локальный прокси внутри расширения и сделать запрос через прокси?

Пример кода

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    vscode.commands.registerCommand('catCoding.start', () => {
      // Create and show panel
      const panel = vscode.window.createWebviewPanel(
        'catCoding',
        'Cat Coding',
        vscode.ViewColumn.One,
        {enableScripts: true}
      );

      // And set its HTML content
      panel.webview.html = getWebviewContent();
    })
}

function getWebviewContent() {
  return `<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cat Coding</title>
</head>
<body>
    <script>
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'https://google.com', true);
        xhr.send();
    </script>
</body>
</html>`;
}

1 Ответ

0 голосов
/ 07 мая 2019

Ответ от Github Issue

Нет поддержки vscode для изменения этого. Вы должны думать о веб-просмотре больше как о представлении html (которое не имеет сервера или источника), а не как о веб-странице

Постеры на стеке могут иметь предложения по обходным путям

...