使用jsonp访问远程脚本时cookie是否有效?

时间:2010-10-17 15:10:53

标签: cookies jsonp form-submit

我使用jsonp将表单发布到远程脚本。代码是这样的:

$.ajax({
   type: "get",
   datatype: "jsonp",
   url: 'http://other-domain.com/process_form.php?param1=x&' + $("#gs_vote_form").serialize(),
   data: $("#gs_vote_form").serialize(),
   success: function(data) {
    alert('form submitted successfully'); 
   }
  });

表单已提交,但是...... process_form.php完全忽略属于“其他域”的cookie数据(不读取或写入),这对我来说是个问题。

请注意,我不关心返回的数据,我只使用jsonp将表单从一个站点静默提交到另一个站点,而不实际将用户转移到另一个站点。

这有什么解决方法吗?什么能让饼干起作用?

1 个答案:

答案 0 :(得分:0)

什么浏览器?

other-domain上的Cookie将是“第三方Cookie”,因此在IE中受到更严格的控制,如“隐私”设置标签中所配置的那样。这意味着,对于IE的默认设置,other-domain将被阻止使用cookie,除非它设置P3P policy。 (其他浏览器不使用P3P,因为很多人认为这是一个毫无意义的骗子章程。)

'?param1=x;' + $("#gs_vote_form").serialize(),

真的,您确定other-domain允许使用;作为&的替代参数分隔符吗?遗憾的是,PHP不支持这一点,除非explicitly reconfigured这样做。