Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 抑制浏览器';s身份验证对话框_Javascript_Flash_Http Authentication_Suppress - Fatal编程技术网

Javascript 抑制浏览器';s身份验证对话框

Javascript 抑制浏览器';s身份验证对话框,javascript,flash,http-authentication,suppress,Javascript,Flash,Http Authentication,Suppress,很抱歉,已经有类似的问题了,但我想问得更广泛一些 是否有任何方法可以在web应用程序的客户端确定请求资源是否会返回401状态码并导致浏览器显示丑陋的身份验证对话框 或者,是否有任何方法可以在flash中加载mp3音频资源,在401状态代码的情况下,该资源会出现不可见的故障,而不是让浏览器显示丑陋的对话框 如果我设置URLRequest对象的“authenticate”属性,但该属性不在Flash运行时中,Adobe Air运行时将禁止验证。在客户机上运行的任何解决方案都可以。XMLHttpReq

很抱歉,已经有类似的问题了,但我想问得更广泛一些


是否有任何方法可以在web应用程序的客户端确定请求资源是否会返回401状态码并导致浏览器显示丑陋的身份验证对话框

或者,是否有任何方法可以在flash中加载mp3音频资源,在401状态代码的情况下,该资源会出现不可见的故障,而不是让浏览器显示丑陋的对话框

如果我设置URLRequest对象的“authenticate”属性,但该属性不在Flash运行时中,Adobe Air运行时将禁止验证。在客户机上运行的任何解决方案都可以。XMLHttpRequest不太可能工作,因为问题中的资源将位于不同的域


以不可见的方式失败是很重要的,因为应用程序将有一个包含许多音频资源的列表要尝试,而当有许多其他可用的音频资源时,打扰用户尝试并验证一个音频资源是没有意义的。解决方案在客户端上运行非常重要,因为所讨论的mp3来自我无法控制的各种服务器。

我的twitter api也有同样的问题-任何受保护的用户都需要客户端进行身份验证

我能想到的唯一解决方案是在服务器端加载页面并返回URL列表及其http响应代码。

“是否有任何方法可以在web应用程序的客户端确定请求资源是否会返回401状态代码并导致浏览器显示丑陋的身份验证对话框?”


不,不是一般的。401响应是服务器表示有必要进行身份验证的唯一标准方式。

只需将对可能需要对Ajax调用进行身份验证的资源的访问包装起来即可。您可以捕获响应代码,并使用javascript执行任何您想要的操作(即播放该声音)。如果响应代码正常,则使用javascript将用户转发到资源


这种方法很可能会在服务器上产生稍多的负载(在某些情况下,您可能不得不多次加载相同的资源),但它应该可以工作。任何关于如何使用XMLHttpRequest的好教程都应该包含所有您需要的内容。例如,看看

如果您使用URLRequest获取文件,那么您遇到的不仅仅是优雅的错误处理,您在Flash和AIR运行时间上遇到了根本性的差异

如果使用URLRequest对象来检索文件,则每个服务器的每个请求上都会出现一个安全错误,该服务器没有设置允许此类请求的策略文件。AIR允许这些请求,因为它基本上是客户机。这是有意义的,因为这是安装应用程序和访问网页之间的区别

我不想不回答,但如果你不能打一个服务器端电话,而且你要打一系列“未知”的服务器,那将是一条艰难的道路


但也许我误解了,你只是想链接到文件,防止用户得到坏链接,还是想实际加载文件?

Ajax不能跨不同的域工作,因此,只有当页面和资源在同一个域上时,这才有效。感谢您的时间,无论我是否能得到我想要的。是的,我正在尝试加载它们并播放它们。不过,任何特定的url都能正常工作并不重要,因为我有很多方法可以尝试。Twitter API有一个
suppress\u response\u codes
参数,它将强制响应具有200 OK状态。