jquery ajax返回错误但是成功

我有以下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); } }); } 

和以下控制器代码:

  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); } } 

addarticle()javascript ajax工作并将vars发布到服务器并进入db,然而,javascript将运行错误函数而不是成功函数。 http响应代码是200,我认为它会使它运行Success函数。 有什么建议?

你需要从控制器返回json,因为这是jQuery所期望的。 你可以返回ie

 { success : true } 

或者您可以将html设置为数据类型(也许它可以在没有内容的情况下工作,但您可能需要返回一些内容)