一个ajax请求的问题,请高手帮忙看看!
本帖最后由 小铅笔 于 2012-3-19 18:05 编辑一个很奇怪的问题
这个是控制器的代码,非常简单
<?php
class int extends CI_Controller
{
function __construct()
{
parent::__construct();
}
public function index()
{
$data['title']=$_POST['user'];
echo $this->load->view('pages/loadajax',$data,TRUE);
}
}
这个是JQUERY的代码
$(document).ready(function(){
$('#load').click(function(){
$.post('index.php/int',{‘user’:'TEST WORD'},function(data){$(data).insertAfter('#load');})
})
})
那么现在有一个问题很怪。就是用$.post的时候如果加上输出参数{‘user’:'TEST WORD'}。就不能正确显示。如果把输入参数去掉。然后在控制器里面把$data['title']=$_POST['user'];改为一个字符串。比如$data['title']='TEST WORD';那么就可以正常的显示。
请问是我哪里代码不正确吗?
看起来没问题,你用 firebug 看看请求是如何发送的。 用firebug提示这个错误。不知道原因出在哪了
500 Internal Server Error
The action you have requested is not allowed. 好像是csrf开启了? 谢谢。的确是CSRF的问题。我全局开启了。下面这篇文章讲了如何在全局开启CSRF情况下设置 AJAX
http://blog.hsin.tw/2011/codeigniter-csrf-protection-form-ajax/ 小铅笔 发表于 2012-3-20 10:03 static/image/common/back.gif
谢谢。的确是CSRF的问题。我全局开启了。下面这篇文章讲了如何在全局开启CSRF情况下设置 AJAX
http://blog ...
你用 helper form_open创建form的话,会自动添加一行token行 本帖最后由 yuzhigang5460 于 2012-3-20 13:29 编辑
小铅笔 发表于 2012-3-20 10:03 static/image/common/back.gif
谢谢。的确是CSRF的问题。我全局开启了。下面这篇文章讲了如何在全局开启CSRF情况下设置 AJAX
http://blog ...
我关闭了CSRF,问题仍然不能重现。
我post过去的数据能正常显示。
——————
理解错误,原来是开启了才会出现问题。
$.post('index.php/int'这建议写绝对路径
$.post('<?php echo base_url();?>index.php/int'
或者<?php echo site_url('int');?>
csrf 开启也没事{‘user’:'TEST WORD',‘csrf名称:’$('#csrfid').val()} zhengfeity 发表于 2012-3-20 13:59 static/image/common/back.gif
$.post('index.php/int'这建议写绝对路径
$.post('index.php/int'
或者
我测试过了,开启以后的确会出现楼主那样的情况,即便是使用绝对路径。 $("#sheng").live("change",function(){
$.post('http://xxxx/index.php/user/tender/region.html',{csrf_test_name:$("").val(),sheng:$(this).val()},
function(data)
{
$('#shi').html('aaaaa');
});
});
页:
[1]