小编Syl*_*ain的帖子

为什么浏览器在经过身份验证的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万
查看次数

为什么ng-transclude的范围不是其指令范围的子代 - 如果指令具有隔离范围?

给定container1带有transclude 的指令()和一个隔离的范围,当指令链接时,我有这些范围:

Scope 004           <-- scope of the body
    Scope 005       <-- scope of directive container1
    Scope 006       <-- scope of the ng-transclude
Run Code Online (Sandbox Code Playgroud)

我期望:

Scope 004            <-- scope of the body
    Scope 005        <-- scope of the directive
         Scope 006   <-- scope of the ng-transclude
Run Code Online (Sandbox Code Playgroud)

如果同一指令具有共享范围而不是隔离范围,则会得到预期结果.

这导致了一个问题,因为如果被转换的内容包含另一个component1带有隔离范围的指令(),我得到:

Scope 004             <-- scope of the body
    Scope 005         <-- scope of the directive
    Scope 006         <-- scope of the ng-transclude
          Scope 007   <-- scope …
Run Code Online (Sandbox Code Playgroud)

angularjs

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

如何在Windows上调试基本的node.js应用程序(而不是http)

我知道如何使用node-inspector和iisnode调试http应用程序.但是,我可以在Windows上使用node-inspector调试非http节点应用程序吗?

我试过了:

 node debug test.js
Run Code Online (Sandbox Code Playgroud)

它说:

debugger listening on port 5858
Run Code Online (Sandbox Code Playgroud)

http://localhost:5858/在Chrome中打开并没有做任何事情.


BTW:运行node debug test.js确实启动了有效的命令行调试器.但它不像节点检查员.

node.js node-inspector

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

如果我使用https,设置establishSecurityContext ="False"有什么影响?

我的WFC服务使用wsHttpBinding配置:

<security mode="TransportWithMessageCredential">
    <message establishSecurityContext="True" clientCredentialType="UserName"/>
    <transport clientCredentialType="None" proxyCredentialType="None"/>
</security>
Run Code Online (Sandbox Code Playgroud)

我们的合作伙伴之一是尝试使用java Metro库来调用我们的服务.他们有这个问题.我必须设置establishSecurityContext ="False"才能生效.我们进行了快速测试,当我将其设置为false时,它确实有效.

不使用安全会话会产生什么影响(通过设置establishSecurityContext ="False").我已经在https上运行了.那么我在安全性方面会好吗?是否还有其他需要考虑的影响(性能可能)?

谢谢

security wcf java-metro-framework

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

如何撤消`hg pull`?

我不小心做了一个hg pull,它在我当地的回购中创建了一个分支.

什么是最简单的撤消,让我的本地回购回到以前的状态?

mercurial

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

commit-pull-merge-push或pull-merge-commit-push?

几个星期前我们开始使用Mercurial.大多数开发人员都遵循此工

  • 处理功能
  • commit -m"工作在功能ABC上"
  • 拉-u
  • 如果分支
    • 合并
    • commit -m"Merge"

今天,我们的一位开发人员建议我们这样做:

  • 处理功能
  • 拉-u
  • 如果分支
    • 合并
  • commit -m"工作在功能ABC上"

这样,我们在日志中的"合并"变更集就少了很多.

我们中的一些人认为这只是一个问题偏好.我们中的一些人认为一个比另一个好.我们没有太多经验,也不想生活滥用工具的缺点.因此,如果一种方法比另一方更可取,请告诉我原因.

mercurial dvcs

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

如果安装了.Net 4.5,如何保持.Net 4.0的行为?

我们有一个针对.Net Framework 4.0的Windows窗体应用程序.安装.Net Framework 4.5后,应用程序开始崩溃.我们将不得不调查崩溃事件,我们很可能必须解决问题.但是,在我们准备好使用.Net 4.5之前,是否有一个设置可以保持旧的行为?


更新07/12/2012: 我们发现导致应用程序崩溃的重大更改:给定System.Threading.Timer,当使用已经关闭的句柄调用Dispose(WaitHandle)时,Timer会尝试发出WaitHandle信号这引发了一个例外.Timer的.Net 4.0实现是容忍的,但4.5不是.

我们这边有一个错误; 我们没有任何理由给它一个封闭的句柄,所以我们只是解决这个问题...直到我们发现另一个错误...

.net .net-4.5

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

如何在具有隔离范围的指令上使用ng-show

我有一个我这样使用的指令:

<dir model="data"></dir>
Run Code Online (Sandbox Code Playgroud)

该指令具有独立的范围.

scope :{
  model:'='
}
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用ng-show我的页面的$ scope的另一个属性来使用该指令,如下所示:

<dir ng-show="show" model="data"></dir>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为该指令试图show在自己的范围内找到属性.

我不希望该指令知道它的容器可能选择隐藏它的事实.

我找到的解决方法是将指令包装在一个<div>并应用于ng-show该元素,但我不喜欢这个强制我使用的额外元素:

<div ng-show="show" >
  <dir model="data"></dir>    
</div>
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

看到这个plunker:http://plnkr.co/edit/Q3MkWfl5mHssUeh3zXiR?p =preview

angularjs

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

如何使用jQuery选择子元素但只有一个级别

鉴于这种:

<div id="div1">
    <div id="div2">
        <div id="div200">
            <div id="div3" class="b">       
            </div>
            <div id="div300">
                <div id="div4" class="b">
                     <div id="div5"> 
                        <div id="div6" class="b">
                        </div>            
                     </div>
                </div>
            <div>
        <div>
    <div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来查找属于"b"类的元素的子(深),而不是那些嵌套在匹配元素中的子元素.

测试用例:

这就是我需要的:

情况1:

$("#div1").some_jquery_syntax(".b")
Should return:
div3, div4
Run Code Online (Sandbox Code Playgroud)

案例2:

$("#div5").some_jquery_syntax(".b")
Should return:
div6
Run Code Online (Sandbox Code Playgroud)

请注意,困难的部分是我必须从div1开始时跳过div2.所以我不能只使用$("#div1").find("> .b").

我的尝试:

我试过这个:

$("#div1").find(".b")
[<div id="div3" class="b"></div>, <div id="div4" class="b"></div>, <div id="div5" class="b"></div>]
Run Code Online (Sandbox Code Playgroud)

不好:我不想要div5,因为它嵌套在div4中.

我试过这个:

$("#div0").find(".b").not(".b .b")
[<div id="div3" class="b"></div>, <div id="div4" class="b"></div>]
Run Code Online (Sandbox Code Playgroud)

从div0开始时哪个好,但是从div4开始不起作用:

$("#div5").find(".b").not(".b .b")
[]
Run Code Online (Sandbox Code Playgroud)

jquery

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

为什么WinDbg,任务管理器和VS调试器报告的线程数不同?

当我的.Net 3.5应用程序运行时,Windows任务管理器显示我的应用程序有16个线程.我为进程收集了一个内存转储,并使用WinDbg/SOS打开它.

运行!threads命令显示我有:

ThreadCount: 456
UnstartedThread: 0
BackgroundThread: 6
PendingThread: 0
DeadThread: 449
Hosted Runtime: no
Run Code Online (Sandbox Code Playgroud)

以下是!threads输出的前几行:

       ID OSID ThreadOBJ    State     GC       Context       Domain   Count APT Exception
   0    1 2848 004366a8      6020 Enabled  11738178:11738778 0042a9f0     0 STA
   2    2 1820 004430e0      b220 Enabled  00000000:00000000 0042a9f0     0 MTA (Finalizer)
   7    5 2c38 055d6330    80a220 Enabled  00000000:00000000 0042a9f0     0 MTA (Threadpool Completion Port)
   8    4  e18 04116900   180b220 Enabled  1157cdc8:1157e778 0042a9f0     0 MTA (Threadpool Worker)
XXXX    6    0 055f94b0      9820 Enabled  00000000:00000000 …

.net multithreading windbg

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