jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 与IE11的CORS请求大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个CORS(跨源资源共享)请求,从我的登录页面到应用程序网站,在不同的URL.我有一个简单的页面我ping,以确定用户是否已经登录,如果是,重定向它们.否则我会显示登录页面.我使用jQuery

这在safari,chrome,firefox …而不是IE(自然)中非常出色.根据MS,IE 10及更高版本应该支持CORS requests with withCredentials

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

任何想法为什么这不工作在IE11?

编辑:它似乎部分工作,因为它现在返回一个值“{”id“:false}.每次都发生这种情况,这意味着服务器从来没有获得凭据.我也在发布我的is_logged_in页面,我正在使用代码点燃器框架.

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

我收到的确切错误是:

$.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");
    }
}
});

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,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: ' . $url);
        }
    }


    $this->output->set_header('Access-Control-Allow-Headers: X-Requested-With');
    $this->output->set_header('Access-Control-Allow-Credentials: true');
    $this->output->set_header("Access-Control-Expose-Headers: Access-Control-Allow-Origin");


    //TODO: Try to detect if this is an ajax request,and disallow it if not.

    $data = new stdClass();
    $this->load->library("ion_auth");
    if($this->ion_auth->logged_in())
    {
        $data->name = $this->ion_auth->user()->row()->first_name;
        $data->id = $this->ion_auth->get_user_id();
    } else {
        $data->id = false;
    }

    $this->output->set_output(json_encode($data));

}

提前致谢

解决方法

将“跨域访问数据源”的设置更改为“已启用”,将关闭IE中的跨域检查,并且可怕的不安全.相反,您需要确保目标第三方资源发送一个 valid P3P policy,表示它不会对用户的隐私做任何可怕的事情.

大佬总结

以上是大佬教程为你收集整理的jquery – 与IE11的CORS请求全部内容,希望文章能够帮你解决jquery – 与IE11的CORS请求所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: