【问题标题】:A common way of requesting the execution of scripts through url/post parameters?通过 url/post 参数请求执行脚本的常用方法?
【发布时间】:2011-08-03 15:03:29
【问题描述】:

我们正在实现一个飞出消息系统,它通常会在用户与页面交互时飞出,但有时需要在页面加载后飞出。

例如,通过 AJAX 设置密码后,我们希望返回主页,并且在加载该页面后,显示“您的密码已更改”消息。

我们将使用 Coldfusion 创建实际的 JavaScript 调用并将它们写入 HTML。

我的问题是,是否有一种通过url/form参数请求执行脚本的标准方式?

我倾向于使用一个表单参数,它是一个 JSON 字符串,其中包含正确的函数调用字符串和参数。

【问题讨论】:

  • Protocol = HTTP...我错过了什么吗?
  • 好的,这更有意义...您是否想编辑您的问题以反映这一点,“协议”一词有点误导。

标签: javascript http protocols


【解决方案1】:

做你所说的一个好方法是在你的<body>标签上使用“data-”参数的约定,或者类似的东西。

<body data-startmsg='Password successfully changed'>
  <!-- whole page of whatever -->
</body>

现在,您的 JavaScript(不必是页面上的内联脚本)只需要一个“就绪”或“加载”处理程序,它可以检查 &lt;body&gt; 上的“data-startmsg”属性,显示它的弹出窗口就在那里。

有很多变化,具体取决于您的消息传递系统的复杂性。例如,如果弹出窗口可能需要更精细的布局或表单输入或类似的东西,您可以将其作为&lt;div&gt;(或&lt;aside&gt;我猜)元素转储到页面上,并带有一个使它们隐藏的类,直到弹出代码可以找到他们。

edit — 进一步阐述,我认为让您的客户端代码按照您所描述的基于 URL 组件的基础工作可能是一个相当糟糕的想法,因为它使您的页面可能更容易受到更多类型的 XSS 攻击向量的攻击。通过让 JavaScript 代码仅从完全由服务器上的安全代码设置的页面部分中获取线索,您可以使攻击更难利用参数清理中的某些弱点,因为在这种设置中,客户端代码会愉快地遵守 URL 中您可能不想要的参数。

【讨论】:

  • 谢谢。您的回答表明我的问题很不清楚。我已经修改了问题,希望更清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2020-03-30
  • 2011-06-10
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
相关资源
最近更新 更多