我对此感到困惑……我正在做一个远程小部件设置,我们将控制这两个域,因此安全性不是问题.我正在使用jsonp来允许跨域ajax请求.
访问过的网站是domain1.com,其中包括:
<script src="domain2.com/file.js"></script>
file.js使用jQuery来发出ajax请求:
$.ajax({
url: 'http://domain2.com/getdata',
dataType: 'jsonp',
success: function(response) {
div.html( response );
}
});
它在某个向导中经历了其中几个步骤,从远程服务器重新加载带有html的div.
我遇到的问题是,在每个ajax请求中,我得到一个新的php会话ID,我的会话数据消失了.事情的PHP结尾很好,如果我从同一个域运行相同的脚本(仍然使用jsonp),一切正常.但是,从远程域执行此操作并且会话不会停留.我不知道为什么会这样,php结束设置并从它自己的域请求cookie.我不需要从JS访问cookie.正在编写cookie并将其保存在服务器上.但是当我在浏览器中检查存储的cookie时,每个请求的会话ID都已更改.
有任何想法吗?
最佳答案 好吧,我创建了一个非常简单的测试用例,它运行得很好.
实际的应用程序正在使用cakephp及其会话.我尝试切换到只使用$_SESSION,但没有用.我尝试将session_start()添加到控制器,但没有工作.最后我在配置中禁用了cakephp会话,现在它工作得很好.
我不知道为什么它不起作用但似乎是与cakephp的故障.