gpt4 book ai didi

javascript - 简单的 Ajax/Codeigniter 请求

转载 作者:行者123 更新时间:2023-11-28 09:10:40 26 4
gpt4 key购买 nike

我在使用 ajax 和 codeigniter 时遇到一些问题。我已经发布了另一个问题( link to question ),我以为我解决了它,但我没有,所以我要求某人使用 ajax/codeigniter 编写简单的代码,这将在点击时增加 div/span 内的数字。

我最近几天尝试这样做,但不断收到错误..我的 CI 设置是:
base_url : localhost/test/
索引:index.php
自动加载:url
默认 Controller :welcome(我只是为了这个测试而保留它)

我非常乐意有简单的例子来做到这一点。我也再次尝试,但没有任何运气。这是我这次尝试的:

Controller (welcome.php)

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {


function __construct()
{
parent::__construct();
}

public function index()
{
$this->load->view('welcome_message');
}

function increase(){
$increase = $this->input->post('increase');
echo increase++;
}
}

JS(Ajax)

function increase(){
var number = parseInt($('#number').html()) + 1;
$.ajax({
type: 'POST',
url: 'localhost/test/welcome/increase',
data: { increase:number },
success:function(response){
$('#number').html(response);
}
});

}

查看(HTML/CSS)

<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript"></script>
<script type="text/javascript" src="<?php echo base_url();?>assets/js/jquery_v1.9.1.js"> </script>
<script type="text/javascript" src="<?php echo base_url();?>assets/js/script.js"> </script>
<style type="text/css">
#number {
display: block;
text-align: center;
width: 100px;
height: 30px;
margin: auto auto;
line-height: 30px;
border: 1px solid #999999;
border-radius: 5px;
}

</style>
</head>
<body>
<span id="number" onclick="increase()">0</span>
</body>
</html>

我在 Windows 7 上使用最新的 xampp。单击 span 时出现错误 - POST http://localhost/test/localhost/test/welcome/increase 404(未找到)

最佳答案

如果您在 config.php 中启用了 CSRF,则必须从 cookie 提交 CSRF token ,否则请求将无效。

您可以使用这个plugin在 javascript 中检索 cookie。然后简单地将其传递给 CI。

ci_token

ci_cookie

按键可能不同,可以找到在config.php中

我还建议为请求设置一条路由并使用

site_url()

超过

base_url()

var SITE = "<?php echo site_url();?>" // GLOBAL variable so your javascripts can be external

-

var data = { 'ci_token' : $.cookies.get('ci_cookie'), 'increase' : parseInt(number)}
$.ajax({
url : SITE + "/link/to/controller/method",
data : data,
});

关于javascript - 简单的 Ajax/Codeigniter 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16378887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com