Codeigniter ajax 表单使用 CSRF 的 jquery cookie 提交不需要的帖子
Codeigniter ajax form submit unwanted post with jquery cookie for CSRF
所以我有一个问题,当我使用 $.cookie jquery 插件时,我认为我的表单似乎通过提前提交而错误地提交。
所以我的形式是:
<?php
echo form_open($this->uri->uri_string(), 'class="ajax_email_submission"');
?>
<div id="email_newsletter_signup" class="ajax_email_block_signup" >
<h3>Sign up to the newsletter:</h3>
<?php echo form_error('signup_email','<div id="email_error" class="error">','</div>');?>
<h3>email: <input id="users_email_address" type="email" name="signup_email" value="<?php echo set_value('signup_email'); ?>" placeholder="Your email"/> </h3>
<input id="email_submit" type="submit" name="submit"/>
</div>
<?php
echo form_close();
?>
JS是
$(document).ready(function()
{
$('#email_submit').click(function()
{
alert('1');
var form_data =
{
users_email: $('#users_email_address').val(),
csrf_test_name: $.cookie('csrf_cookie_name')
};
alert('2');
$.ajax
({
url: 'NewsLetter/submit',
type: 'POST',
data: form_data,
success: function(msg)
{
alert('success');
},
error: function(msg)
{
alert('error');
}
});
return false;
});
});
该方法存在,如果我输入本地主机/myzone/NewsLetter/提交,则提交方法可以正常工作。
当我查看代码点火器路由器类时,我发现 $_POST 变量包含:
$_POST array[3]
ci_csrf_token string "3dad64d9aaaaaaaaaaaaaad2082ae55c"
signup_email string "mail@cheeeese.com"
submit string "Submit"
提交的 URI 是 localhost/myzone/NewsLetter,因为提交是在帖子中而不是 URI,所以我被发送到索引方法而不是提交方法。
此外,在JS中发生的事情,您可能会注意到alert('1')
和alert('2')
。只有alert('1')
显示我不知道为什么会发生这种情况!
所有的帮助真的很感激
谢谢
您不是通过 ajax 而是通过 POST 方法提交表单。如果您想在提交之前进行 smth,请添加
event.preventDefault()
到您的点击功能。喜欢
$('#email_submit').click(function(event)
{
event.preventDefault();
//all your calculations and ajax than
}
而不是不会提交任何表单,您将推送您的 ajax 请求
相关文章:
- Javascript生成的表单未提交
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- HTML表单提交时未执行外部函数
- 在POST中将html表作为csv提交
- 在jquery中为显示/隐藏设置cookie
- 我应该使用Ng提交还是点击表格
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 按下按钮时保存cookie
- 提交后保留下拉选择的值
- 键入最后一位数字后自动提交
- 阻止表单元素提交
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- 单击“提交”按钮时跳转到另一个页面并保存 Cookie
- Codeigniter ajax 表单使用 CSRF 的 jquery cookie 提交不需要的帖子
- 访问cookie时,提交按钮消失
- 表单值在提交后作为cookie保存&页面更改
- 在wordpress中设置提交按钮后的cookie
- 这是对发布的启用cookie的重申,有人希望我重新提交以澄清
- 绕过cookie请求提交表单
- Javascript Cookie只提交一次表单