相关疑难解决方法(0)

如何使用Javascript和XMLHttpRequest加载二进制图像数据?

我试图加载一个图像客户端和base64编码服务器返回的字节,以传递它来执行一些处理.IE具有XMLHttpRequest对象的RequestBody属性,但我似乎无法使用它,并且RequestText被截断.在Firefox中,RequestText存在,但似乎已损坏.

javascript image xmlhttprequest

24
推荐指数
2
解决办法
6万
查看次数

如何使用基本身份验证设置<img>标记

我想在我的网页上显示网络摄像头的图像,但图像位于HTTP基本认证服务器后面.

在Firefox和Chrome中,我可以这样做:

<img width="320" height="200" src="http://username:password@server/Path" />
Run Code Online (Sandbox Code Playgroud)

但在Internet Explorer 8中,我得到一个空的图像框.如果我使用JQuery设置src属性,IE8会显示一个空白的src.看起来IE8正在检查字符串并拒绝它.

有没有办法将基本身份验证凭据放在img标记中?

html authentication image

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

Internet Explorer 10忽略XMLHttpRequest'xhr.withCredentials = true'

我目前在使用IE10进行跨域ajax调用时遇到问题(在IE10模式下,不兼容).

情况:我有两个域名,http://ahttp://b.我有一个cookie设置http://b.我目前在页面上http://a.

我想做一个http://b使用XMLHttpRequest 的CORS请求(根据http://blogs.msdn.com/b/ie/archive/2012/02/09/cors-for-xhr-in-ie10.aspx,这应该可行.),并在请求中包含cookie.JS如下:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://b', true);
xhr.withCredentials = true;
xhr.send();
Run Code Online (Sandbox Code Playgroud)

这应该确保cookie附加到请求; 然而,Fiddler跟踪显示没有附加cookie,我得到了401: Access Denied.

服务器配置为使用CORS,它包括Access-Control标头:

Access-Control-Allow-Origin: http://a
Access-Control-Allow-Credentials: true
Run Code Online (Sandbox Code Playgroud)

(这不应该有任何区别,因为没有OPTIONS预检请求,并且IE发送的第一个请求是GET,并且cookie不存在,从而导致401).

此外,JS代码段在Firefox和Opera中均可正常运行.

javascript ajax internet-explorer cors

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

带有Authorization标头的JavaScript重定向URL

我设法成功调用Apache中受基本身份验证(htpasswd等)保护的目录后面的URL.Ajax GET请求正常工作并返回受保护的内容:

var encoded = Base64.encode(username + ':' + password);
$.ajax({
    url: "/app/test",
    type: "GET",
    beforeSend: function(xhr) {
        xhr.setRequestHeader('Authorization', 'Basic ' + encoded);
    },
    success: function() {
        window.location.href = '/app/test.html';
    }
});
Run Code Online (Sandbox Code Playgroud)

我最初的假设是,一旦网络会话成功授权了一个请求,它就可以在"成功"块中重定向,而无需询问用户凭据.调用此代码块时,用户已在非受保护环境中输入用户名和密码.但是,当调用重定向时,浏览器将弹出登录/密码窗口.

关于如何预先授权用户提供的基本授权会话的任何建议?

javascript apache jquery basic-authentication

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

不使用arraybuffer检索二进制数据

我有以下资源:

function _arrayBufferToBase64(buffer) {
    var binary = '';
    var bytes = new Uint8Array(buffer);
    var len = bytes.byteLength;
    for (var i = 0; i < len; i++) {
        binary += String.fromCharCode(bytes[ i ]);
    }
    return window.btoa(binary);
}

var API = $resource(server + 'album', {}, {
    get: {
        url: server + 'album/:albumId/photo/:photoId',
        method: 'GET',
        responseType: 'arraybuffer',
        headers: {
            'AuthToken': 'the secret',
            'Accept': 'image/*'
        },
        interceptor: {
            response: function(resp) {              
                return 'data:'+ resp.headers('Content-Type') + ';base64,' + _arrayBufferToBase64(resp.data)};
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

它的作用是从服务器接收文件的二进制内容,并返回带有base64数据的数据uri.

我不得不说这个调用不能被简单的src标记替换为url,因为还有一些身份验证头也被发送. …

javascript angularjs

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