javascript - 在 Angular 应用程序中解析 Content-Range header 时出现问题(返回 null)

标签 javascript angularjs

我的 .NET API 服务器正在向我的 Angular 客户端返回一些数据,并设置 Content-Range header ,如下所示:

var response = await base.ExecuteAsync(cancellationToken);
const string unit = "items";

response.Headers.Add("Accept-Ranges", unit);
response.Headers.Add("Range-Unit", unit);
response.Content.Headers.ContentRange = new ContentRangeHeaderValue(_requestedFrom, _requestedTo, _totalCount)
            {
                Unit = unit
            };

这看起来工作正常,正如我的网络选项卡所示:Content-Range:items 0-9/122

我遇到的问题是,当我尝试解析这些数据时,解析似乎失败了:

var response = parseRange(headers('Content-Range'));
console.log("response " + response);

控制台记录:响应为空。有什么想法我做错了吗?

编辑。 parseRange函数

function parseRange(hdr) {
  var m = hdr && hdr.match(/^(?:items )?(\d+)-(\d+)\/(\d+|\*)$/);
  if(m) {
    return {
      from: +m[1],
      to: +m[2],
      total: m[3] === '*' ? Infinity : +m[3]
    };
  } else if(hdr === '*/0') {
    return { total: 0 };
  }
  return null;
}
该函数中的

hdr 为空,因此看来 headers() 函数是问题所在?

最佳答案

这里的问题实际上是在服务器端,我需要将内容范围添加到公开的 header 中:

 [EnableCors("http://localhost:3000", "*", "*", exposedHeaders: "Content-Range")]

关于javascript - 在 Angular 应用程序中解析 Content-Range header 时出现问题(返回 null),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32235259/

相关文章:

javascript - Ext JS datepicker,从两个不同的日历中获取日期范围

javascript - 无法将图标字体与 AngularJS 一起使用

java - HTTP 状态 403 - 在请求参数中发现无效的 CSRF token 'null'

javascript - 如何在范围变量angularjs中保存文本框值

javascript - Nodejs移动文件而不删除源目录

javascript - 使用 onbeforeunload 时抑制确认对话框

javascript - 如何将文本区域的最后三行添加到三个不同的变量?

javascript - 如何获取Canvas图像数据?

javascript - 我可以将独立作用域和继承作用域结合起来吗?

javascript - 单击按钮动态添加 DOM 元素