太不可思议了!Flash程序员熟悉这个例子:
var req:URLRequest = new URLRequest("http://yoursite.com/yourservice.ext"); req.method = URLRequestMethod.POST; req.data = new URLVariables("name=John+Doe"); var encoder:Base64Encoder = new Base64Encoder(); encoder.encode("yourusername:yourpassword"); var credsHeader:URLRequestHeader = new URLRequestHeader("Authorization", "Basic " + encoder.toString()); req.requestHeaders.push(credsHeader); var loader:URLLoader = new URLLoader(); loader.load(req);
好的......太棒了...真的很有效.如您所见,我手动添加标头授权进行基本HTTP身份验证.但是......如果我将请求metod从POST更改为GET,则不会生成标头.
有没有人知道解决方案?1000x thx!
令您惊讶的是,您甚至能够通过POST
请求处理它。在2007年12月,Flash Player已更新为明确禁止Authorization header
。我想他们以后可能会重新允许这样做。但是我对此感到惊讶。编辑:根据@derFunk的评论,事实是实际上随后随后允许了标头,尽管在将其发送到其他域时必须在中明确允许crossdomain.xml
。
除了Authorization
标头的特定问题之外,我非常确定Flash Player只会发送带有POST
请求的自定义请求标头。抱歉,我没有为此提供的链接,但是在我公司,我们广泛使用Flash Player来与Restful Web服务一起使用,并且我们必须实现各种变通办法才能使事情正常进行。
最重要的是,Flash Player具有对HTTP的强大支持。实际上,我们的解决方法是通过发送request标头来激活的,该标头X-Crippled-Client: true
告诉我们的服务以混乱的方式解释请求并发送响应。屁股上真是痛苦。
抱歉,我不能提供更多帮助……祝您好运!