2010-07-15 110 views
1

我正在从另一个应用程序中获取信息,并在内嵌iframe。我需要能够从其他系统进行身份验证。通过ajax登录到远程系统并设置Cookie

这是/正在使用jQuery提交给隐藏的表单,但计时问题正在变得棘手。

我想要做的是向另一个系统发送一个ajax信息,并将cookie设置为ajax完成,我可以将它们传送到另一个页面。

我的代码目前看起来是这样的:

$(document).ready(function() { 
    $.post('Anotherserveronasubdomain.com', { 
     username : '<?php echo $username ?>', 
     passowrd : '<?php echo $password ?>', 
     action : 'logon' 
    }, function(data) { 
     alert(data); 
     //$(location).attr('href', 'apagewiththerightinformationifcookiesareset.php'); 
    }); 

});

该脚本不返回任何内容,因此未设置cookie。有没有办法让远程系统设置这些cookie,还是我在这里用圈子运行?

谢谢你的时间。

回答

0

您是否在控制其他子域上的该网站?如果Cookie设置为“.domain.com”,它们将对所有子域有效,并且这应该起作用。

+0

Cookie设为.domain.com,只是他们似乎没有得到设置与此代码。这就像我错过了一个步骤将cookie返回并将其设置在用户机器上。 – 2010-07-15 20:21:37

+0

他们应该通过您在ajax调用中发布的页面进行设置,您不需要对返回进行任何操作。 – Fosco 2010-07-15 20:26:40

+0

好的,所以我不疯狂,它应该工作,感谢您的帮助。我想是时候追踪其他服务器管理员,看看他们是否有任何补充。 – 2010-07-16 05:50:41

1

即使由于相同的原产地策略而将Cookie设置为.domain.com,ajax调用也不起作用。

您将不得不显式设置cookie或使用document.domain(我不完全知道)。

更详细的解释,可以发现:在子域

multi-sub-domain cookies and ajax problems