Ajax 在angularjs中处理406 http响应
我将angular与一个ngResource工厂一起使用,该工厂在Rails后端有一个restful控制器。当发出post请求以创建新记录时,My API以406响应和json响应进行响应,其结构如下:Ajax 在angularjs中处理406 http响应,ajax,angularjs,Ajax,Angularjs,我将angular与一个ngResource工厂一起使用,该工厂在Rails后端有一个restful控制器。当发出post请求以创建新记录时,My API以406响应和json响应进行响应,其结构如下: { success: false, errors ['error1', 'error2'], message: "record didn't save" } 问题是,当我从API返回406响应时,我在控制台中看到一个post请求错误,angular无法处理该响应 比如: POST http:/
{ success: false, errors ['error1', 'error2'], message: "record didn't save" }
问题是,当我从API返回406响应时,我在控制台中看到一个post请求错误,angular无法处理该响应
比如:
POST http://localhost:3000/api/widget/384/comments 406 (Not Acceptable) includes.js?v=e777c6e0fdfb9a725e857c8ca3eab18f:545
sendReplacement includes.js?v=e777c6e0fdfb9a725e857c8ca3eab18f:545
(anonymous function) angular.js?body=1:8381
sendReq angular.js?body=1:8181
$http.serverRequest angular.js?body=1:7922
wrappedCallback angular.js?body=1:11320
wrappedCallback angular.js?body=1:11320
(anonymous function) angular.js?body=1:11406
Scope.$eval angular.js?body=1:12413
Scope.$digest angular.js?body=1:12225
Scope.$apply angular.js?body=1:12517
(anonymous function) angular.js?body=1:18627
jQuery.event.dispatch jquery.js?body=1:5117
elemData.handle
我的角度代码的结构如下:
Object.save( { object_id: 1 } ).$promise.then(function (response) {
if (response.success) {
//success
} else {
// something else
}
如何指示angular处理此类HTTP响应?您应该检查服务器代码。一般来说,406意味着某些标题/内容类型不被客户端接受 接受:客户端接受的MIME类型。例如,浏览器可能只接受它知道如何处理的返回类型的数据(HTML文件、GIF文件等)。 Accept Charset:客户端接受的字符集。 接受编码:客户接受的数据编码,例如,其理解的文件格式。 接受语言:客户接受的自然语言(英语、德语等)。 接受范围:客户端是否从资源(即资源的一部分)接受字节范围 因此,请检查服务器正在输出哪些标头 您还可以检查“响应”对象上有哪些其他属性可用