首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的WS -承诺响应中的句柄304未定义

我的WS -承诺响应中的句柄304未定义
EN

Stack Overflow用户
提问于 2015-06-02 12:46:11
回答 1查看 480关注 0票数 0

信息:使用AngularJS v1.3.15

编辑:这个问题似乎与如何处理来自我的304服务器的304响应有关,而不是ng文件上传。我改了头衔

我正在尝试管理来自我的and服务器的304回调,我有以下问题:

代码语言:javascript
复制
TypeError: Cannot read property 'data' of undefined
    at ng-file-upload.js:79
    at angular.min.js:112
    at n.$get.n.$eval (angular.min.js:126)
    at n.$get.n.$digest (angular.min.js:123)
    at n.$get.n.$apply (angular.min.js:126)
    at l (angular.min.js:81)
    at M (angular.min.js:85)
    at XMLHttpRequest.F.onload (angular.min.js:86)

ng-file-upad.js的第79行如下:

代码语言:javascript
复制
promise.success = function (fn) {
    promise.then(function (response) {
       console.log(response,config); // HERE RESPONSE IS UNDEFINED
        fn(response.data, response.status, response.headers, config);
    });
    return promise;
};

我要上传的代码如下:当我的WebService发送200个响应时,这段代码运行良好。

代码语言:javascript
复制
       Upload.upload({
            url: $localStorage.endPointVersion + "sky/!/avatar",
            fields: {},
            file: file
        }).progress(function (evt) {
            var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
            console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name);
        }).success(function (data, status, headers, config) {
            console.log('file ' + config.file.name + 'uploaded. Response: ', data);
        }).error(function (data, status, headers, config) {
          console.log('error ' + config.file.name + 'uploaded. Response: ' + data);
        });

当webServer上已经存在文件时,我的webservices发送一个304响应。

到目前为止,我已经开发了一些拦截器,并看到304确实被处理成responseError。

代码语言:javascript
复制
$httpProvider.interceptors.push(['$location', '$injector', '$q', function($location, $injector, $q) {
                         return {
                            'responseError': function(rejection) {
                                 $log = $log || $injector.get('$log');

                                  if (rejection.status === 304) {
                                     // I have tried to reject it to go into error of upload, without success
                                     return $q.reject(rejection);

                                 }
                             }
                         };
                     }]);

第一个问题:这个响应代码正常吗?对吗?若否,应如何处理“无更改/未修改”的职位?将Webserver上的304响应更改为另一个响应是可能的,但会产生巨大的影响。如果可能的话,我想避免更改它,并正确地在webapp 304响应上进行第二个问题(以及主体):我应该如何管理来自Webserver的这304个响应?

我看到了这一点:$http returns error when response is 304 (Not Modified) in angularjs说角有效状态是return 200 <= status && status < 300;

EN

Stack Overflow用户

回答已采纳

发布于 2015-06-09 12:49:46

最后,我更改了后端响应,以不同的方式处理代码状态。

这个问题解决了。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30596541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档