【发布时间】:2015-05-18 09:17:05
【问题描述】:
我正在实现一个 CSRF 解决方案,该解决方案在替换之前自动将存储在会话中的令牌注入所有表单。我已经实施了 2 个解决方案来确保处理所有提交
对于 ajax 提交,我实现了一个 jquery.ajaxPreFilter 方法,该方法将令牌添加到数据属性中,然后再将其传递给 ajax 处理程序。
对于其他表单,我使用 jquery.on('submit') 绑定到提交事件。
对于通过 javascript 提交的表单,我已将 .submit() 调用更改为 .trigger('submit');
我们的代码中有一些 javascript 方法会在调用 form.submit() 之前使用 javascript document.createElement() 创建表单。我无法将这些更改为 form.trigger('submit') 因为 jquery 无法识别它们;我收到错误“form.trigger 不是函数”。
如何处理这些类型的表单提交以触发提交事件,以便我的绑定方法将其拾取?
【问题讨论】:
-
如果您包含所有相关代码,这将更容易响应。但是,问题可能只是
createElement()返回一个普通的 DOM 元素,而不是.trigger()函数可用的 jQuery 集合。
标签: javascript jquery forms csrf csrf-protection