Javascript jQuery post不工作,而get使用相同的结构工作

Javascript jQuery post不工作,而get使用相同的结构工作,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我对以下php方法进行了ajax调用: public function test(){ die(json_encode(['test' => 'test1'])); } 我的ajax调用在设置为GET而不是POST时有效。GET调用是: $.ajax({ type: 'get', url: url, success: function(msg) { log(msg); }, dataType: 'json'

我对以下php方法进行了ajax调用:

public function test(){
        die(json_encode(['test' => 'test1']));
    }
我的ajax调用在设置为GET而不是POST时有效。GET调用是:

$.ajax({
    type: 'get',
    url: url,
    success: function(msg) {
        log(msg);
    },
    dataType: 'json'
});
它成功地返回JSON元素。但当我将其设置为POST时:

$.ajax({
    type: 'post',
    url: url,
    success: function(msg) {
        log(msg);
    },
    dataType: 'json'
});
不返回任何内容。如果我删除了数据类型,它将返回触发它的整个网页

我确实需要以POST的形式提出请求,因为我将发送大量数据


谢谢。

您是否启用了CSRF保护?

您如何调用test()?它是url参数的一部分,我认为这不是问题,因为它与GETNo.一起工作。。如何执行函数测试()?如果您正在测试GET vs POST,并根据该决定执行test(),那么这可能是一个问题。对不起,我没有遵循。test()属于Ajax.php文件,除Ajax调用外,其他任何程序都不会使用它。我的ajax中的url类似于:myDomain/ajax/testAre您是否使用了基于url路径自动调用函数的php框架?正如您所指出的,这是CSRF的一个问题!我(同时)将其设置为FALSE,结果成功了。我以后会解决的,至少我现在能把数据拿回来。谢谢你的好意…问题在于CSRF重新生成…如果每次都重新生成令牌,那么ajax将无法工作。我通过将CSRF_REGENATE设置为FALSE来修复它。