JQuery AJAX возвращает ошибку, но это успех - PullRequest
6 голосов
/ 25 сентября 2011

У меня есть следующий JS

function change_ajaxarea1(){
navigator.notification.activityStart();
$('#ajaxarea1').load('http://server.net/droiddev/backbone1/index.php/welcome/', function(){

navigator.notification.activityStop();
$('#ajaxarea1').css("height","auto");
//$('#ajaxarea1').css("overflow","hidden");
});

//navigator.notification.activityStart();
}


function postarticle(){

 $.post("http://server.net/droiddev/backbone1/", { headline: "John", article: "2pm" } );

 }


function addarticle(){

var headlinetemp=$('#headline').val();
var articletemp=$('#article').val();
$.ajax({
type:'POST',
dataType:'json',
url: "http://server.net/droiddev/backbone1/index.php/welcome/addarticle/",
data: { 'headline': headlinetemp, 'article': articletemp},
success:function(){
alert('success');
},
error:function(xhr){
alert(xhr.status);
}



});



}

и следующий код контроллера:

  <?php 

class Welcome extends CI_Controller {


    public function index()
    {

    $data['query']=$this->site_model->get_last_ten_articles();
$this->load->view('partial1',$data);

    }

    public function addarticle(){

    $headline=$this->input->post('headline');
    $article=$this->input->post('article');
    $this->site_model->insert_entry($headline,$article);



    }
}

javascript ajax addarticle () работает и отправляет переменные на сервер и в базу данныходнако javascript затем будет запускать функцию ошибки вместо функции успеха.Http-код ответа - 200, который, я думал, заставит его запустить функцию успеха.какие-либо предложения?

1 Ответ

8 голосов
/ 25 сентября 2011

Вам необходимо вернуть json из контроллера, поскольку именно этого ожидает jQuery. Вы можете вернуть то есть

{ success : true }

Или вы можете установить html в качестве типа данных (возможно, он будет работать без содержимого, но вам может понадобиться что-то вернуть)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...