【问题标题】:Codigniter Cross-Origin Ajax Calls Not Picking Up Session InformationCodeigniter 跨域 Ajax 调用未获取会话信息
【发布时间】:2016-01-11 09:40:34
【问题描述】:

我在 localhost 上设置了 CI 3 用于开发,在我的主机文件中使用示例域,在 httpconf 中使用通配符 ServerAlias。 url 加载完美,登录代码运行良好,保存会话,我可以导航登录的系统。

当我向我的测试域的子域发送 ajax 请求时,CI 中的会话似乎丢失了,因此它无法验证用户是否已登录。

假设我的主机文件中的域是:

127.0.0.1 testdomain.com
127.0.0.1 test1.testdomain.com
127.0.0.1 test2.testdomain.com

CodeIgniter 配置为 cookie_domain = ".testdomain.com"。

我可以通过http://testdomain.com:81 登录系统,但只要我通过$.post (jQuery) 向http://test1.testdomain.com 或test2 发送请求。它以我的验证登录代码作为响应,说会话为空。

我有

header('Access-Control-Allow-Origin: *'); 

在 ajax 正在调用的控制器的顶部。

有什么想法吗?

【问题讨论】:

  • 研究ajax withCredentials 允许跨域发送cookies

标签: php jquery ajax codeigniter session


【解决方案1】:

如果遇到跨域请求问题,你应该使用 $.jsonp() 而不是使用 $.post()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    相关资源
    最近更新 更多