2015-08-19 7 views
6

Zadeklarowałem oddzwonienia success i error, ale w przypadku kodu stanu 200 również wywołuje tylko oddzwonienie.AJAX: wywoływane jest tylko wywołanie zwrotne błędu

Wykonywałem również zawinięcia do innego pliku php również wewnątrz registry.php.

Oto co próbowałem:

$.ajax({ 
    type: "POST" 
    ,data: { 
    action: "blah" 
    ,mobileNo: that.mobNo 
    ,token: that.key 
    } 
    ,url: "http://90.8.41.232/localhost/registry.php" 
    ,cache: false 
    ,dataType: "json" 
    ,success: function (response) { 
    console.log("success"); 
    } 
    ,error: function() { 
    console.log("error"); 
    } 
}); 

Czytałem w dokumentacji, że nie mamy zadzwonić sukces zwrotnego wyraźnie, nadzieję, że to poprawne.

Każdy pomysł, jak połączyć się z oddzwonieniem powitalnym, gdy ma kod statusu 200.

RESPONSE nadzieję, że pomoże to skopiowane z konsoli chromu, nie drukowane przez console.log().

bort: (statusText) 
always:() 
complete:() 
done:() 
error:() 
fail:() 
getAllResponseHeaders:() 
getResponseHeader: (key) 
overrideMimeType: (type) 
pipe:() 
progress:() 
promise: (obj) 
readyState: 4 
responseText: "{"success":"Mobile No 9535746622 is approved"}  {"report":true}" 
setRequestHeader: (name,value) 
state:() 
status: 200 
statusCode: (map) 
statusText: "OK" 
success:() 
then:() 
+2

Twój kod wygląda prawidłowo, czy odpowiedź od serwera jest poprawna? – aghidini

+0

Czy jesteś pewien, że 'http: // 90.8.41.232/localhost/registry.php' nie jest dostępem do danych między domenami? jeśli tak, to być może będziesz musiał włączyć cors w rejestrze.php, dostarczając określone nagłówki, a także musisz sprawdzić 'jsonp' dla dostępu do danych międzydomenowych. – Jai

+0

Funkcja błędu przyjmuje trzy argumenty. Spójrz na nich, prawdopodobnie powiedzą ci, co jest nie tak. Konsola błędów JavaScript może również wyświetlać błędy. Karta Net narzędzi deweloperskich pozwoli Ci potwierdzić, czy w odpowiedzi masz kod statusu 200 OK, czy go sprawdziłeś? – Quentin

Odpowiedz

2

Jak już wspomniano, że robisz curl wezwanie do innego php, co się dzieje, gdy masz zrobić curl dzwoń, musisz odpowiedzieć klientowi na odpowiedź curl. Aby przetransferować wartość return połączenia curl, należy ustawić opcję curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);. To rozwiąże problem. Mam nadzieję.

+0

niesamowite ... działało dzięki – PJ1405

2

Najpierw kasa prawdziwy błąd można dostać (nie pewne naprawdę dostać status 200?)

error: function (err) { 
    console.error("error"); 
    console.log(err); 
    console.log(err.stack); 
    throw err; 
} 

Pokaż nam wynikowy dziennik proszę.

+0

Mam dodany obiekt odpowiedzi, tam kod statusu '200' n' ok'. – PJ1405

+0

Proszę umieścić console.log (err); To jest tak, że zobaczysz wyrzucone szczegóły błędu –

-2

zrobiłem, że kilka tygodni temu, a dla mnie to działa, jeśli ja to nazywam jak

$.ajax(
{ 
    type: "POST", 
    data: { action: "blah", mobileNo: that.mobNo, token: that.key }, 
    url: "http://90.8.41.232/localhost/registry.php", 
    cache: false, 
    dataType: json, 
}) 
.success (function (data, status, jqxhr) 
{ 
    // do your stuff 
}) 
.error (function(x, status, jqxhr) 
{ 
    // handle your errors 
});