2016-02-04 42 views
1

我們正在利用我們當前項目的角度,我們正在做Restangular API調用時。突然,我開始做後一定端點時出現錯誤。

後是這樣的:

Restangular.one('aaa').post('bbb', data) 
    .then((response) => { 
    console.log(response); 
    }, (err) => { 
    console.log(err); 
    }); 

和日誌是這樣的:

SyntaxError: Unexpected token F 

一段時間,我放棄了,並試圖用角$ HTTP服務後。

$http({ 
    method: 'POST', 
    url: '/aaa/bbb', 
    data: data 
}).then(function successCallback(response) { 
    console.log(response); 
    }, function errorCallback(response) { 
    console.log(response); 
    }); 

和日誌:

SyntaxError: Unexpected token F 

從那以後,我開始變得絕望,做了與jQuery.ajax

jQuery.ajax({ 
    url:'/aaa/bbb', 
    type: 'POST', 
    data: data, 
    contentType: 'application/json; charset=utf-8', 
    success: function(s) { 
    console.log(s); 
    console.log('jquery success'); 
    }, 
    error: function(e) { 
    console.log(e); 
    console.log('jquery error'); 
    }, 
    complete: function(c) { 
    console.log(c); 
    console.log('jquery complete'); 
    } 
}); 

和日誌後使用jquery.ajax時:

Object {readyState: 4, responseText: "Fatal error: actual error message here", status: 200, statusText: "OK"} 
jquery error 

最後得到的東西!我們使用Drupal的爲我們的後端,並沒有啓用的模塊之一。 我只是想知道爲什麼當初restangular和$ HTTP未能給予適當的錯誤消息。

回答

1

通過Restangular$http模塊產生的響應是相同的,將來自JSON模塊被接收到的響應。例如:

JSON.parse("{F}"); 

產生錯誤:

Uncaught SyntaxError: Unexpected token F

jQuery的的響應是從未經JSON.parse應用程序的服務器的原始響應數據。