CodeIgniter4.0+ajax post 403 Forbidden解决办法

    Ajax如果使用get是能正常提交和获取数据的,但是使用post的时候就是403 Forbidden。同时,配置app里面是开启了csrf验证的。
    关闭csrf或排除提交页面地址的方式解决是可行的。但是,即想开着csrf认证,又想要用ajax post,可以试试这个办法。
    其实可以看看用户发送令牌的顺序,检查CSRF令牌可用性的顺序如下:

  1. $_POST array (例如: <input type="hidden" name="<?= csrf_token() ?>" value="<?= csrf_hash() ?>" />).
  2. HTTP头(即:X-CSRF-TOKEN: ccd8facfa8229bdba5e0160c108d1a02)。
  3. php://input(JSON请求)——请记住,这种方法是最慢的,因为我们必须先解码JSON,然后再re-encode它。(即:{"csrf_cookie_name": "ccd8facfa8229bdba5e0160c108d1a02"})

您可以手动完成它。例如:在PHP视图模板中,使用Ajax时写上下面这句:

            headers: { "<?php echo csrf_header();?>": "<?php echo csrf_hash();?>"}

然后就解决post 403  403 Forbidden了。

$.ajax({
				url:"/xxx/test",
				type: "POST",
				dataType:"json",
				headers:  {"<?php echo csrf_header();?>": "<?php echo csrf_hash();?>","X-Requested-With": "XMLHttpRequest"},
				contentType: "application/json; charset=utf-8",
				data:{data:postData},
				success:function(data){
					alert(data.result);
					console.log(data); 
				},
				 error: function(data) {
                    alert(data);
					console.log(data); 
                },
			});			

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CodeIgniter框架中,获取POST参数可以使用$_POST['key']来获取。此外,CodeIgniter还封装了一个Input类,可以使用$this->input->post('key')来获取POST提交过来的数据。例如,可以使用以下代码来获取POST参数: $key = $_POST['key']; 或者 $key = $this->input->post('key'); 其中,'key'是要获取的POST参数的键名。这样就可以获取到相应的POST参数了。 另外,CodeIgniter还提供了获取GET参数的方法。可以使用$this->input->get('key')来获取GET参数。这样可以方便地获取到URL中的GET参数。 总结起来,CodeIgniter框架中可以通过$_POST['key']、$this->input->post('key')获取POST参数,通过$this->input->get('key')获取GET参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [CI框架获取post和get参数_CodeIgniter心得](https://blog.csdn.net/lishk314/article/details/48240607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [在CodeIgniter中检索JSON POST数据](https://blog.csdn.net/weixin_39954674/article/details/115108581)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值