Как автоматически выполнить содержимое ответа POST, то есть тег сценария, в React? - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю над реактивным проектом, который заменит страницу входа в нашу унаследованную систему.Однако это реагирующее приложение по-прежнему должно отправлять запрос на эту устаревшую ASP-страницу по причинам интеграции и бизнес-правил.

Моя задача - объединить возвращение этого ASP с реагировать.Устаревший ответ - строка в случае ошибки или HTML-тег сценария в случае успеха.

Изменение устаревшего ответа не является опцией

Пример ответа об ошибке: Password/Username is invalid

Пример успеха:

<script type='text/javascript'>top.location = 'http://www.contoso.com/myIndexPage.asp?token={FFF6F5F0F-F000-0F00-0000-F000F00F0000}'</script>

Моя проблема заключается в том, как правильно обработать запрос, и, если это успешно, автоматически выполнить этот тег сценария?Я пытался использовать опасно SetInnerHTML, но он не выполняет сценарий.Тег сценария корректно вставляется в HTML.

Вот как я его использую:

<div dangerouslySetInnerHTML={{__html: this.myASPReturn}} />

Как выполнить тег сценария успеха вв случае действительного входа в систему, или просто показать сообщение об ошибке в случае неправильного входа в систему?

1 Ответ

0 голосов
/ 20 февраля 2019

Это одно решение.

Сначала проанализируйте HTML.Я использовал эту технику: Разобрать строку HTML с JS

const string = "<script type='text/javascript'>top.location = 'http://www.contoso.com/myIndexPage.asp?token={FFF6F5F0F-F000-0F00-0000-F000F00F0000}'</script>"

const el = document.createElement('div');
el.innerHTML = string;

Затем получить код из элемента script и eval() it.

const scriptString = el.firstChild.innerText;
eval(scriptString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...