相关疑难解决方法(0)

为什么浏览器在经过身份验证的XMLHttpRequest之后不重用授权头?

我正在使用Angular开发单页应用程序.后端公开需要基本身份验证的REST服务.获取index.html或任何脚本不需要身份验证.

我有一个奇怪的情况:我的观点的人有一个<img>,其中src是一个REST API需要验证的URL.它<img>由浏览器处理,我没有机会为它所做的GET请求设置授权标头.这会导致浏览器提示输入凭据.

我尝试通过这样做解决这个问题:

  1. img src在源空
  2. 在"文档就绪"中,使用Authorization标头创建XMLHttpRequest一个service(/api/login),以便进行身份验证.
  3. 完成该调用后,设置该img src属性,认为到那时,浏览器会知道在后续请求中包含Authorization标头...

......但事实并非如此.图像请求没有标题.如果我输入凭据,则页面上的所有其他图像都是正确的.(我也试过和Angular的ng-src但是产生了相同的结果)

我有两个问题:

  1. 为什么浏览器(IE10)在成功后的所有请求中都没有包含标题XMLHttpRequest
  2. 我该怎么做才能解决这个问题?

@bergi询问了请求的详细信息.他们来了.

请求/ api /登录

GET https://myserver/dev30281_WebServices/api/login HTTP/1.1
Accept: */*
Authorization: Basic <header here>
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729)
Connection: Keep-Alive
Run Code Online (Sandbox Code Playgroud)

响应(/ api/login)

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: …
Run Code Online (Sandbox Code Playgroud)

html javascript basic-authentication angularjs single-page-application

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

从JavaScript字符串中读取字节

我有一个包含JavaScript中二进制数据的字符串.现在我想从中读取一个整数.所以我得到前4个字符,使用charCodeAt,做一些移位等等来得到一个整数.

问题是JavaScript中的字符串是UTF-16(而不是ASCII),并且charCodeAt通常返回高于256的值.

Mozilla的参考指出,"前128个Unicode码点是ASCII字符编码的直接匹配".(那么ASCII值> 128?).

如何将结果转换为charCodeAtASCII值?或者有更好的方法将四个字符的字符串转换为4字节整数?

javascript

32
推荐指数
6
解决办法
7万
查看次数