繁体   English   中英

使用JQuery和javascript在Ajax调用之后保存cookie

[英]Saving down a cookie after an Ajax call using JQuery and javascript

使用相同的凭据,我试图从一个表单登录到两个不同的位置。 这样做的原因是第二次登录(A CRM门户)可以加载到iframe而无需再次登录。 我认为最好的解决方案是使用Ajax调用来处理一个登录,然后在我得到响应之后,去处理第二次登录。 我正在使用客户端进行两次调用,因为我需要将cookie保存到客户端的浏览器中。 我用Ajax来打电话。 我知道正在返回cookie(我使用一个名为Fiddler的应用程序来查看活动)但我不知道如何获取这些cookie并将它们保存到客户端浏览器中?

我使用的Javascript / JQuery:

<script type="text/javascript">
    $(document).ready(function() {
        $(".login_btn").click(function() {
            $.ajax({
                type: "POST",
                url: "http://development/crm/processlogin.php",
                data:"username="+ "email@email.email" + "&password="+ "password" + "&rememberme="+ "on",
                success: function(data, textStatus){
                    alert("success: "+ JSON.stringify(data));
                },
                error: function(data, textStatus){
                    alert("error: "+ JSON.stringify(data));
                }
            });
        });
    });
</script>

我得到的Cookie响应,使用“Fiddler”查看信息:

Response sent 44 bytes of Cookie data:
    Set-Cookie: PHPSESSID=4a30p9g6mh5tm93a94o7bh7r74; path=/
Response sent 50 bytes of Cookie data:
    Set-Cookie: WHMCSUID=75; expires=Thu, 07-Feb-2013 10:48:49 GMT
Response sent 79 bytes of Cookie data:
    Set-Cookie: WHMCSPW=54512414f2e6aef246445abf341a05e9; expires=Thu, 07-Feb-2013 10:48:49 GMT

我从firebug控制台窗口得到的消息:

POST http://development/crm/processlogin.php 302 Moved Temporarily 5.04s

输出:

error: {"readyState":0,"responseText":"","status":0,"statusText":"error"}

我相信302错误消息是因为服务器在登录后尝试重定向。我实际上并不需要重定向但我确实需要将cookie保存到浏览器以便用户登录并且我'我希望你们能告诉我怎么做?

谢谢!!!

我相信cdm9002是正确的说它不起作用的原因是由于不同的域。 我在同一个域上测试了它的功能,但是,这不是我需要的功能。 我想出了一个让它工作的黑客,但这不是正确的做事方式:(如果有人知道正确的方法,我仍然感兴趣,但我已经解决了我的直接困境。

解决方案是首先处理应用程序登录。 然后将下一个登录凭据加载到下一页的隐藏iframe中。 然后我使用javascript提交隐藏的表单。

我知道这是一种非常糟糕的做法,但我无法提出替代解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM