Как открыть веб-браузер с помощью AWS post lambda - PullRequest
0 голосов
/ 17 января 2019

Я написал фрагмент кода ниже:

static async postSearchResult(httpContext: HttpContext, injector: Injector) {
    const log = injector.get(Log);
    const service = injector.get(Service);
    try {
        let result = await service.redirectToUI(JSON.parse(httpContext.getRequestBody()));

        httpContext.ok(result, 200, {'Content-Type': 'application/json'});
    } catch (e) {
        httpContext.fail(e, 500);
    }
}

protected redirectToUI(response: any) {
    // If any post api call happened then it should open web browser and pass some field as query parameter
    window.open("https://www.google.com?abc=response.abc");
    return response ? response : "failed";
}

Здесь я получаю следующую ошибку:

Ошибка выполнения. ReferenceError: Окно не определено

Что я делаю не так?

1 Ответ

0 голосов
/ 17 января 2019

То, что вы пытаетесь достичь, не имеет особого смысла. Лямбда это бэк-энд сервис. Чтобы открыть новое окно браузера, вам нужно использовать интерфейсный JavaScript, а не серверный узел (в фоновом режиме у вас нет доступа к интерфейсному window объекту).

Если вы хотите открыть новое окно браузера в качестве реакции на какой-либо внутренний ответ, то вы можете отправить некоторый индикатор в ответе HTTP (например, shouldOpenNewWindow: true как часть объекта ответа), проанализировать этот ответ на интерфейс и индикатор присутствуют, тогда вы можете выполнить команду window.open. Но это должно быть сделано на переднем конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...