我使用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将表单从一个站点静默提交到另一个站点,而不实际将用户转移到另一个站点。
这有什么解决方法吗?什么能让饼干起作用?
答案 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这样做。