美文网首页
关于UC浏览器再使用系统的时候出现跨域提示问题

关于UC浏览器再使用系统的时候出现跨域提示问题

作者: 小钟钟同学 | 来源:发表于2020-06-08 10:30 被阅读0次

    在使用VUE写后台系统的时候,发现谷歌的浏览器预校验没有提示相关跨域请求,而使用UC浏览器的时候,却提示了

    image.png
    login:1 XMLHttpRequest cannot load http://xxxxx.natappfree.cc/sys/login. Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.
    

    分析了一下,主要原因是再发起预校验的时候我们的请求头里多了一项(所有浏览器都会有):

    image.png

    分析了一下再发起预校验的地方,我们flask后端的响应头那也设置了对于的允许的自定义的请求字段:


    image.png

    但是测试发现,UC 对 ‘*’的不起作用,必须要明细到具体的允许的字段信息。有点奇葩!

    所以最后只能改成!

       @app.after_request
        def after_request(response):
            '''
            收到请求后的钩子
            :param response:http返回结构体
            :return:
            '''
            # # 注册跨域
            response.headers['Access-Control-Allow-Origin'] = '*'
            response.headers['Access-Control-Allow-Credentials'] = 'true'
            # response.headers['Access-Control-Allow-Origin'] = '*'
            # 注意这里的方法的名称,或直接的写GET,POST,PUT,OPTIONS,DELETE
            response.headers['Access-Control-Allow-Methods'] = '*'
            # response.headers['Access-Control-Allow-Headers'] = '*'
            # response.headers['Access-Control-Allow-Headers'] = '*222222222'
            # 这个地方不能直接的写* 号, 当前端发起跨域  解决axios出现的Request header is not allowed by Access-Control-Allow-Headers in preflight response
            # 需要明确支持的头部信息
            # login?redirect=%2F:1 XMLHttpRequest cannot load http://ikp5c9.natappfree.cc/sys/login. Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response
    
            # 注意一点 涉及到跨域的时候,涉及自定义头部信息的时候,都需要再次加上
    
            allow_headers = 'School-Teacher-Token,school-teacher-token,x-access-token,Referer, Accept, Origin, User-Agent,X-Requested-With, Content-Type, X-File-Name'
            response.headers['Access-Control-Allow-Headers'] = allow_headers
    
            # 请求完成最终的日志处理
            register_link_end_log_record_handler(flask.request, response)
    
            return response
    

    且其他新增的自定义的请求的头的字段信息,也必须的给加上才可以!比如的自定义提交的 school-teacher-token,x-access-token的请求头信息!

    相关文章

      网友评论

          本文标题:关于UC浏览器再使用系统的时候出现跨域提示问题

          本文链接:https://www.haomeiwen.com/subject/fvhazhtx.html