(参考 这个答案:)

当我后URLRequest,它不会自动包括cookie从浏览器届会议在其闪托管?如果不是,我怎么能让它包括他们,或者如果需要找回他们和包括他们自己?

有帮助吗?

解决方案

提供该cookie域匹配(承载Flash控制和到您发布的URL页面),那么,浏览器Cookie获取具有默认请求一起发送。作为一个简单的例子(这里工作版本),我放在一起主持一个简单的ColdFusion页包含下面的代码SWF:

<mx:Script>
    <![CDATA[

        private function btn_click():void
        {
            var req:URLRequest = new URLRequest("http://test.enunciato.org/test.cfm");
            req.method = URLRequestMethod.POST;

            var postData:URLVariables = new URLVariables();
            postData.userName = "Joe";
            postData.userCoolness = "very-cool";

            req.data = postData;
            navigateToURL(req);
        }

    ]]>
</mx:Script>

<mx:Button click="btn_click()" label="Submit" />

...在该页面中,我设置了一个cookie,名为“USERID”,以“12345”的值。点击提交,并导航到另一个CFM后,我的服务器日志显示的cookie通过请求中传递:

  

POST /test.cfm HTTP / 1.1的Mozilla / 5.0结果   ASPSESSIONIDAASRDSRT = INDFAPMDINJLOOAHDELDNKBL;结果   JSESSIONID = 60302395a68e3d3681c2;结果   的 USERID = 12345 结果   test.enunciato.org 200

如果你测试一下你自己,你会看到在POSTDATA有作为。

请感?

其他提示

我假设你刚刚wan't包括像进行身份验证服务器端的会话ID。

要从AS获得cookie的浏览器(需要启动Javascript,不应该是大多数用户的问题)

public var cookieStr:String;
public var cookieHeader:URLRequestHeader;
ExternalInterface.call('eval','window.cookieStr = function () {return  document.cookie};')
cookieStr = ExternalInterface.call('cookieStr'); 
cookieHeader = new URLRequestHeader("Cookie",cookieStr);

然后,使用URLRequest对象时:

var urlRequest:URLRequest = new URLRequest(...blah blah, url here, etc etc);
urlRequest.requestHeaders.push(cookieHeader);

注意到,火狐的发送带有一个URLRequest沿会话的cookies,您将需要一个类似于上面来克服这个问题的解决方案。

不确定闪光。但不能序列化的Cookie,并把它放入网址是什么?

也许你会想对数据进行加密或者以纯文本形式发送,但它可能看起来像:

URL:

www.example.com?newurl&cookiesession=true&cookieusername=bob

(或者我失去了一些东西?)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top