1

この問題があります。JQuery の ajax を使用して、CodeIgniter コントローラー内の関数を呼び出しています。しかし、関数からプレーンテキストのみを印刷している場合でも、常に 400 Bad Request エラーが発生します。

コードは次のとおりです。

class Prueba extends CI_Controller {

//Displays de page, the code here is irrelevant
public function index(){
    $this->validar_sesion();

    $ciclos=  $this->recuperar_periodos_escolares();

    $this->smartyci->assign('secciones',  $this->session->userdata('secciones'));
    $this->smartyci->assign('modulos',  $this->session->userdata('modulosAutorizados'));
    $this->smartyci->assign('ciclos',$ciclos);

    $this->smartyci->display('v3/reportes/reporte_ranking_general.tpl');  
}

//The function to be called with AJAX, it originally has more code, 
//but for the tests I just echoed a plain string, which is never returned.
public function recuperar_instrumentos(){
    echo "EXITO!";
}

これがJavaScriptです:

var url="148.209.25.135/evaluacionAdmin/index.php/prueba;";


function recuperar_instrumentos(idCicloEscolar){
    var request=$.ajax({
        type:"POST",
        url:url,
        data:{idCiclo:idCicloEscolar}
    });

    request.done(function(data){
        $('#instrumento').html(data);
    });

    request.fail(function(xhr,textStatus,error){
        $('#instrumento').html(xhr.responseText);
        alert("status= "+textStatus+"\nerror= "+xhr.status+"\n"+error);

    });

私はいつもこの反応を得ています

jqXHR.responseText:
    An Error Was Encountered
    The URI you submitted has disallowed characters.

jqXHR.status: 400

textStatus: error

error: Bad request

そこで何が起こっているのかについてのヒントや助けをいただければ幸いです

4

2 に答える 2

2
var url="148.209.25.135/evaluacionAdmin/index.php/prueba;";

URL にセミコロンがあります。次のように変更します。

var url="148.209.25.135/evaluacionAdmin/index.php/prueba";

標準の CI 構成には、URI に使用できる文字のリストがあります。セミコロンも受け入れるように正規表現を変更できますが、この場合、誤ってセミコロンを挿入したように見えます。

于 2013-09-19T16:37:11.063 に答える
0

問題はあなたのURLにあります

var url="148.209.25.135/evaluacionAdmin/index.php/prueba;";

する必要があります

var url="148.209.25.135/evaluacionAdmin/index.php/prueba";// delete extra semicolon
于 2013-09-19T16:39:44.037 に答える