CI使用Ajax的POST方式发送请求是禁止访问
在使用Ajax方式的POST方法发送请求时,总是显示403,使用GET方式的时候没有出现这个问题$(document).ready(function(){
$(".fileShow").bind("click",function(){
var $this=$(this);
var $filename=$this.attr("id");
var $fileurl=$this.attr("name");
$.ajax({
url:$fileurl,
method:"post",
dataType:"html",
data:{filename:$filename},
success:function(result){$("#fileshowContent").text(result);},
error:function(){alert('error');}
});
})
});
本帖最后由 Closer 于 2015-6-3 09:42 编辑
我記得 JS 的變數宣告不用錢字號吧 ...
另外,你的 URL 是取 $this.attr("name")
這是表示一個控制器名+方法名? Closer 发表于 2015-6-3 09:40
我記得 JS 的變數宣告不用錢字號吧 ...
另外,你的 URL 是取 $this.attr("name")
這是表示一個控制器名+方 ...
$this.attr("name")//表示的是一个控制器+方法名,也就是CI中的url地址
我使用GET方法可以,但是使用POST方法就是提示403 forbidden,是不是我的$config哪个地方出现了问题
墨家巨子 发表于 2015-6-3 10:43
$this.attr("name")//表示的是一个控制器+方法名,也就是CI中的url地址
我使用GET方法可以,但是使用POST ...
先清空你要用 ajax 送往的方法內的代碼,只 echo 1;
確認 ajax 傳輸正確
不要再琢磨於 GET 有成功但 POST 沒成功這件事了!
往往錯誤都出現在一些小地方 你先 alert 你的 filename & fileurl Closer 发表于 2015-6-3 11:49
你先 alert 你的 filename & fileurl
两个变量的值为:
$fileurl : http://localhost/index.php/Filemanage/show
$filename: ManageFile/file/test/a.php
地址和文件名都没有问题
參考 百度知道 - 为什么我用jQuery Ajax调用后台方法,结果被403了 Closer 发表于 2015-6-3 12:00
參考 百度知道 - 为什么我用jQuery Ajax调用后台方法,结果被403了
问题解决了,原因是我把CSRF设置TRUEl,所以无法通过POST方式提交
$config['csrf_protection'] = FALSE;
墨家巨子 发表于 2015-6-3 15:23
问题解决了,原因是我把CSRF设置TRUEl,所以无法通过POST方式提交
CSRF 留著阿
多送出一個欄位給他即可
var token = $('input').val();
{csrf_test_name : token}
页:
[1]