簡體   English   中英

jQuery的承諾問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM