2011-09-24 30 views
5

Tengo el siguiente JSjquery ajax devuelve el error, pero es el éxito

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



}); 



} 

y el siguiente código de controlador:

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



    } 
} 

El addarticle() de JavaScript obras ajax y los puestos de los VARs el servidor y en el db, sin embargo, javascript ejecutará la función de error en lugar de la función de éxito. El código de respuesta http es 200, que pensé que lo haría ejecutar la función de éxito. ¿alguna sugerencia?

Respuesta

7

Debe devolver json desde el controlador, ya que esto es lo que espera jQuery. Puede volver es decir

{ success : true } 

O usted podría establecer HTML como tipo de datos (tal vez funcione sin contenido, pero es posible que tenga que devolver algo)

+1

bien, así me quita el tipo de datos: debe a que no necesita realmente cualquier cosa que se envíe de vuelta, así que después de eso funcionó de manera normal. pensé que el tipo de datos era para qué tipo de datos: su entrada. gracias –

+0

No, su entrada siempre se serializa a querystring en get o string in post. De nada. –

Cuestiones relacionadas