为了账号安全,请及时绑定邮箱和手机立即绑定

控制器不发送数据代码点火器

控制器不发送数据代码点火器

PHP
幕布斯6054654 2022-01-14 16:02:40
我有一个现成的 ci 应用程序,我正在尝试使用 ajax,但即使我尝试了许多正确的代码 get 工作但帖子从来没有我认为配置 ajax_test 视图有问题<script src="https://code.jquery.com/jquery-3.4.1.min.js" type="text/javascript"></script><script type="text/javascript">   var base_url = "<?=base_url()?>";   $(document).ready (function(){    $('#get_bt').click(function(){        $.post(base_url+'ajax_test/info_page' , {name:'bashir' , id:'1'}, function(data){            alert(data);        })        });});<button id="get_bt">get</button>控制器<?php class Ajax_test extends CI_Controller { public function index(){    $this->load->helper('url');    $this->load->view("ajax_test");}public function info_page(){    echo $this->input->post('name');}}   ?>请注意,它适用于 get 而不是 post The jquery error加载资源失败:服务器响应状态为 403(禁止)
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

403 错误是由于配置设置造成的。在文件/application/config/config.php 中,您具有以下设置。

$config['csrf_protection'] = TRUE;

这是一件好事,但也需要您将 CSRF 令牌名称/值连同“名称”和“ID”一起发送到控制器。

查看有关跨站点请求伪造 (CSRF)的文档以了解如何获取这些值。

或者您可以使用 GET 作为建议的另一个答案。(GET 不检查 CSRF。)

或者您可以使用$config['csrf_protection'] = FALSE;(通常是个坏主意。)

或者您可以使用/application/config/config.php 中的以下内容将 URI 列入白名单

$config['csrf_exclude_uris'] = array('ajax_test/info_page');

但是发送 CSRF 凭证是最安全的,因此也是最好的解决方案。


查看完整回答
反对 回复 2022-01-14
?
PIPIONE

TA贡献1829条经验 获得超9个赞

尝试使用


$name = $_GET['name'];


echo $name

而不是使用 input->post


或将您的 ajax 更改为


$.ajax({

        url: your url,

        type: "POST",

        data: {name:"bashir"},

        dataType: "json",

        contentType: false,

        cache: false,

        processData: false,

        success: function(data) {

            alert("success")

        },

        error: function(jqXHR, textStatus, errorThrown) {

            alert("Error");

        }

    });


查看完整回答
反对 回复 2022-01-14
  • 2 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信