我有以下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); } }
addarticle()javascript ajax可以运行并将vars发送到服务器并进入db,但是,javascript然后将运行错误函数而不是成功函数。http响应代码是200,我以为它将运行Success函数。有什么建议?
您需要从控制器返回json,因为这是jQuery期望的。您可以返回即
{ success : true }
或者,您可以将html设置为数据类型(也许它可以在没有内容的情况下运行,但是您可能需要返回一些内容)