Reactjs 如何在React中自动执行响应后内容(即脚本标记)?
我正在做一个react项目,它将取代我们遗留系统的登录页面。但是,由于集成和业务规则的原因,此react应用程序仍需要对此旧版ASP页面发出post请求 我的挑战是将此ASP的返回与react集成。如果出现错误,遗留响应是字符串,如果成功,则是脚本html标记 更改旧版响应不是一个选项 错误响应示例:Reactjs 如何在React中自动执行响应后内容(即脚本标记)?,reactjs,integration,Reactjs,Integration,我正在做一个react项目,它将取代我们遗留系统的登录页面。但是,由于集成和业务规则的原因,此react应用程序仍需要对此旧版ASP页面发出post请求 我的挑战是将此ASP的返回与react集成。如果出现错误,遗留响应是字符串,如果成功,则是脚本html标记 更改旧版响应不是一个选项 错误响应示例: 密码/用户名无效 成功例子: <script type='text/javascript'>top.location = 'http://www.contoso.com/myIndex
密码/用户名无效
成功例子:
<script type='text/javascript'>top.location = 'http://www.contoso.com/myIndexPage.asp?token={FFF6F5F0F-F000-0F00-0000-F000F00F0000}'</script>
top.location=http://www.contoso.com/myIndexPage.asp?token={FFF6F5F0F-F000-0F00-0000-F000F00F0000}
我的问题是如何正确处理请求,如果成功,是否自动执行此脚本标记?我尝试过使用危险的LysetinerHTML,但它没有执行脚本。不过,脚本标记已正确插入HTML中
我就是这样使用它的:
如何在有效登录时执行成功脚本标记,或者在无效登录时仅显示错误消息 这是一种解决方案
首先解析html。我使用了这个技巧:
只有在成功时,响应才是脚本。错误响应将是一个字符串,如:
“无效用户”
。如果我eval()这个错误消息,我将得到一个异常。@tiagorrenck您可以在try/catch中处理它
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;
const scriptString = el.firstChild.innerText;
eval(scriptString);