相关疑难解决方法(0)

使用IE11的CORS请求

我有一个CORS(跨源资源共享)请求从我的登录页面到应用程序站点,在不同的URL上.我有一个简单的页面我ping以确定用户是否已经登录,如果是,则重定向它们.否则我会显示一个登录页面.我使用jQuery.

这适用于safari,chrome,firefox ......而不是IE(自然).根据MS,IE 10及更高版本应该使用withCredentials支持CORS请求

我正在使用jquery-2.0.3.min.js

任何想法为什么这不适用于IE11?

编辑:它似乎部分工作,因为它现在返回值{"id":false}.每次都会发生这种情况,这意味着服务器永远不会获得凭据.我也发布了我的is_logged_in页面,我正在使用代码点火器框架.

编辑:在IE的安全设置下启用"允许跨域的数据源"后,我不再收到任何错误消息.

我收到的确切错误是:

SEC7118:用于http://mysite.net/guest/is_logged_in的 XMLHttpRequest 需要跨源资源共享(CORS).

$.ajax({
url: 'http://mysite.net/guest/is_logged_in',
type: 'POST',
crossDomain: true,
xhrFields: {
       withCredentials: true
  },

dataType: 'json',
success: function(data) {

    if(data.id) {
        window.location.replace("http://mysite.net");
    }
}
});
Run Code Online (Sandbox Code Playgroud)

public function is_logged_in()
{
    $allowed = array(
        'http://mysite.net',
        'http://www.mysite.net',
        'http://www.mysite.com',
    );

    $url = $_SERVER['HTTP_REFERER'];
    $url = substr($url, 0, strpos($url, '/', 8));
    if(isset($_SERVER['HTTP_ORIGIN']))
    {
        if(in_array($_SERVER['HTTP_ORIGIN'], $allowed))
        {
            $this->output->set_header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
        }
    }
    else
    {
        if(in_array($url, $allowed))
        {
            $this->output->set_header('Access-Control-Allow-Origin: ' . …
Run Code Online (Sandbox Code Playgroud)

jquery cors internet-explorer-11

25
推荐指数
3
解决办法
7万
查看次数

标签 统计

cors ×1

internet-explorer-11 ×1

jquery ×1