对于仅由 AJAX 提交的表单,由于阻止了默认的 HTML 提交行为,因此设置 action
属性有什么好处吗?我还没有找到任何 AJAX 形式的教学页面说它可以省略,但我看不出设置它的意义,所以我想我会问。如果禁用Javascript,它只是作为后备(这种情况变得越来越罕见,如果没有JS,我的代码在其他方面将毫无用处(,还是我忽略了其他好处?
如果要支持回退行为,例如在 JavaScript 错误阻止 JS 提交的情况下,则需要一个 action
属性。但是,否则您不一定需要它。
您可能想要的一种情况是,如果您遵循"不显眼"的方法,该方法鼓励您在后端呈现表单时设置action
,然后当您通过 JS (AJAX( 提交表单时,您使用action
的值作为请求的目标。
在任何情况下,您也始终希望在表单上设置method
,即使通过 JavaScript 提交也是如此;默认值为 GET
,这会导致表单值在查询字符串中提交。当在没有TLS的情况下发出请求时,此信息将以明文形式传输,即使使用TLS,它最终也会进入缓存,这可能导致信息被泄露(例如,从共享计算机(。