私は jquery の約束を実践していますが、デモ コードで奇妙なことが起こっています。私のコードは、ボタンをクリックすると、サーバーから単純なjsonデータを受け取ります。done()
私は2つの jquery promises を使用していfail()
ます。ボタンをクリックすると、サーバーからデータを受信しますが、done()
実行されていないデータが を介してコンソールに表示されfail()
ます。なぜ、どうすればこれを解決できますか? 以下は私のコードです
jquery
var Obj = function () {
return {
gets: function (successHandler, errorHandler) {
console.log('hello');
return $.ajax({
url: '/server.php',
dataType: 'JSON',
type: 'GET'
});
}
}
};
$('.button').on('click', function () {
var obj = new Obj();
var promise = obj.gets();
promise.done(function (data) {
console.log(data);
});
promise.fail(function (e) {
console.log(JSON.stringify(e)); //this logs below
});
出力
{"readyState":4,"responseText":"<?php\n$response = array('oranges', 'apples', 'berries');\nexit(json_decode($response));","status":200,"statusText":"OK"}
ここに私のphpコードがあります
$response = array('oranges', 'apples', 'berries');
exit(json_decode($response));