Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Codeigniter中的Ajax没有';无法在远程主机中为特定控制器工作_Javascript_Ajax_Codeigniter_Jquery_Codeigniter 2 - Fatal编程技术网

Javascript Codeigniter中的Ajax没有';无法在远程主机中为特定控制器工作

Javascript Codeigniter中的Ajax没有';无法在远程主机中为特定控制器工作,javascript,ajax,codeigniter,jquery,codeigniter-2,Javascript,Ajax,Codeigniter,Jquery,Codeigniter 2,我的web应用程序向远程服务器中的Codeigniter php代码发出Ajax请求。它在本地主机中工作,但不与远程主机中的特定控制器一起工作。这很奇怪,因为这两个控制器都在localhost中工作。 请求: $.ajax({ async:true, type: "POST", dataType: "json", url:"/CI/site/index.php/contact/submitContact", data: "", //data examp

我的web应用程序向远程服务器中的Codeigniter php代码发出Ajax请求。它在本地主机中工作,但不与远程主机中的特定控制器一起工作。这很奇怪,因为这两个控制器都在localhost中工作。 请求:

$.ajax({
    async:true,
    type: "POST",
    dataType: "json",  
    url:"/CI/site/index.php/contact/submitContact",
    data: "", //data example 
    success:arrived,
    error:problems }); 

function arrived(data){
    var dataJson = eval(data);                       
}
function problems(){            
    $("#result").text('Problems.');     
}
我用
log\u消息检查到达时间。下一个功能可以正常工作:

  function submitContact(){
     log_message('error', 'submitContact. ');
    //If data are received
    if($_POST){
            log_message('error', 'data. [application/controllers/contact.php]');
        }   
    }
但是,如果我将请求更改为
url:“/CI/site/index.php/control/controlHome”
,则不会出现任何日志消息,输出为下一条:
POSThttp://www.page.com/CI/site/index.php/control/controlHome 500(内部服务器错误)

下面是函数
/application/controllers/control.php

 function controlHome(){
    log_message('error', 'controlHome. [application/controllers/control.php]');
    //If data are received
    if($_POST){
         log_message('error', 'data. [application/controllers/control.php]');
    }   
 }

我还尝试在ajax代码中使用完整的url,但结果是一样的。需要任何设置吗?

使用codeigniter 2检查此AJAX csrf保护。这解决了我同样的问题

更新: 我检查了测试服务器上的control.php文件

if($_POST) { /* i only commented gangway library functions  */
} else { /* only replace the load->view with an print_r $data; and its work */ }

并对舷梯库的建设进行了评述。并且control/controlHome工作正常,没有任何错误。检查导致错误500的舷梯库。

是否将csrf保护设置为真?这就是Ajax出现问题的原因。我已经将csrf保护设置为true,但在测试中,我得到了与csrf相同的错误尝试false。当直接从浏览器打开“/CI/site/index.php/contact/submitContact”时,您会收到相同的500错误?是的。同样的错误。我试着用真假来测试。那就不是Ajax的问题了。不是吗?没错,不是Ajax问题。PHP从我开始认为问题在于主机。现在,没有以前工作过的ajax请求。我将与主机提供商交谈turn
$config['csrf\u protection']=FALSE
并在浏览器中打开名为ajax的controller,如果出现内部服务器错误,代码可能有问题,但如果无法获得错误,则ajax调用中的问题将被忽略。或者尝试联系主机提供商。我已经解决了这个问题,问题出在gangway库使用的另一个库代码中。谢谢你抽出时间。