Я работаю над расширением, которое основано на 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>`;
}