小编Jer*_*ner的帖子

Javascript:从字节数组中在新选项卡中打开PDF

我正在使用带有HTTP资源的AngularJS来调用外部API,我的响应是一个字节数组.我需要在新窗口中将此字节数组转换为PDF.我没有看到任何非常好的解决方案在这里工作跨浏览器或纯javascript.有没有办法做到这一点?

这是我的代码:

使用Javascript

Document.preview({id: $scope.order.id}, function(data){

    // Open PDF Here
    var file = new Blob([data], {type: 'application/pdf'});
    var fileURL = URL.createObjectURL(file);
    window.open(fileURL);

});
Run Code Online (Sandbox Code Playgroud)

javascript pdf jquery bytearray angularjs

12
推荐指数
2
解决办法
4万
查看次数

添加X-Auth-Token - C#HttpClient

我正在尝试在我的HttpClient上添加一个"X-Auth-Token"作为标题,当我发出请求时,我收到403错误禁止,这是有道理的因为我不认为我的X-Auth-Token被附加为标题.

如何在标题中指定"X-Auth-Token"?

这是相关代码:

using (var c = new HttpClient())
{
    c.BaseAddress = new Uri(url); 
    c.DefaultRequestHeaders.Accept.Clear(); 
    c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
    c.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token);
Run Code Online (Sandbox Code Playgroud)

c# httpclient

6
推荐指数
1
解决办法
7709
查看次数

Grunt Serve | connect:livereload端口9000已在使用中

我使用Yeoman使用bower和grunt构建一个角度应用程序.运行grunt服务给了我这个错误:

Running "connect:livereload" (connect) task
Fatal error: Port 9000 is already in use by another process.
Run Code Online (Sandbox Code Playgroud)

我有另一个使用端口9000的进程,所以我想改变Grunt的端口.我试图改变我的Gruntfile中的端口,但我继续得到同样的错误.以下是Gruntfile.js中的grunt服务器设置

 connect: {
     options: {
        port: 9002,
        hostname: 'localhost',
        livereload: 35729
  },
Run Code Online (Sandbox Code Playgroud)

gruntjs livereload

5
推荐指数
1
解决办法
3685
查看次数

角度选择不绑定到Ng模型

我的角度选择没有约束力.我可以告诉值是正确的,但是选择没有更新.如果值存在,为什么不绑定?

<div ng-controller="MyController" ng-app>
    <select class="form-control" ng-model="colorId"ng-options="color.id as color.name for color in colorList">
        <option value="">--Select a Color--</option>
    </select>
<input type="button" value="submit" ng-click="Select()"></input>
Run Code Online (Sandbox Code Playgroud)

function MyController($scope) {
    $scope.colorList = [{
        id: '1',
        name: 'red'
    }, {
        id: '2',
        name: 'blue'
    }, {
        id: '3',
        name: 'green'
    }];

    var colorId = 3;
    $scope.colorId = colorId;
    alert($scope.colorId);

    $scope.Select = function () {
        var colorId = 2;
        $scope.colorId = colorId;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴:

http://jsfiddle.net/ky5F4/23/

angularjs ng-options

4
推荐指数
1
解决办法
1万
查看次数

二进制流到 Uint8Array - JavaScript

我从 HTTP 请求接收到以下二进制流:

HTTP请求

Document.get({id: $scope.documentId}, function(stream){

});
Run Code Online (Sandbox Code Playgroud)

角工厂

.factory('Document', ['$resource', 'DOCUMENTS_CONFIG',
    function($resource, DOCUMENTS_CONFIG) {
        return $resource(DOCUMENTS_CONFIG.DETAIL_URL, {}, {
            get: {
                method: 'GET', 
                params: {}, 
                url: DOCUMENTS_CONFIG.DETAIL_URL,
                isArray: false
            }
        });
    }
]);
Run Code Online (Sandbox Code Playgroud)

回复

控制台.log(流) 我需要将其转换为 Uint8Array。我尝试将其转换为 bas64

// Convert Binary Stream To String
var dataString = JSON.stringify(stream);

// Convert to Base 64 Data
var base64Data = window.btoa(unescape(encodeURIComponent(dataString)));  
Run Code Online (Sandbox Code Playgroud)

当我运行此命令时,我收到错误“格式错误的 uri 异常”。我也尝试过 window.btoa(dataString) 但出现“无法在“Window”上执行“btoa”:要编码的字符串包含 Latin1 范围之外的字符”。

我怎样才能将其转换为 Uint8Array?

javascript binarystream angularjs uint8t

1
推荐指数
1
解决办法
9529
查看次数