[英]issue with jquery promises
我正在練習jQuery Promise,演示代碼中發生了奇怪的事情。 我的代碼所做的是,當我單擊按鈕時,它從服務器接收了一個簡單的json數據。 我正在使用兩個jQuery Promise,一個是done()
,第二個是fail()
。 當我單擊按鈕時,它從服務器接收數據,但通過fail()
在控制台中顯示done()
未執行數據。 為什么以及如何解決這個問題? 以下是我的代碼
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));
return $.ajax({
url: '/server.php'
dataType: 'JSON',
...
但
"responseText":"<?php\n$response = array ...
jQuery需要JSON
但服務器會提供PHP
源代碼。 因此將引發解析異常,拒絕Deferred
並.fail()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.