• IIS web.config 跨域设置 不包含 options的设置 thinkphp tp3 跨域


    web.config

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <remove name="OPTIONSVerbHandler" />
                <add name="PHPviaFastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="D:folderserverPHPphp7.3php-cgi.exe" resourceType="Unspecified" />
            </handlers>
        </system.webServer>
    </configuration>
    

    scriptProcessor 的目录地址 可通过 phpinfo.php 获得,后面加上 php-cgi.exe

    这里两步
    第一步,删除 iis的OPTIONSVerbHandler对options的拦截
    第二步,添加对php的解释器,让options也由php进行控制,这样就非常灵活了。

    php的入口文件添加

        header('Access-Control-Allow-Origin: '. $_SERVER['HTTP_ORIGIN']);//允许跨域请求
        header('Access-Control-Allow-Headers: Origin,Token, Referer, user_token, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie');
        header('Access-Control-Allow-Credentials: true');//允许跨域请求
        header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE");
    if (strtoupper($_SERVER['REQUEST_METHOD']) == 'OPTIONS') {
        exit();
    }
    

    看看这个能解决 跳转到 php脚本的问题吗
    https://www.zhaokeli.com/article/8542.html

    web.config

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <remove name="OPTIONSVerbHandler" />
                <add name="OPTIONS" path="*" verb="OPTIONS" modules="ProtocolSupportModule" resourceType="Unspecified" />
            </handlers>
            <httpProtocol>
                <customHeaders>
                    <add name="Access-Control-Allow-Origin" value="*" />
                    <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, DELETE" />
                    <add name="Access-Control-Allow-Headers" value="ISS,Origin,Token, Referer, user_token, X-Requested-With, Content-Type, Accept, Connection, User-Agent, Cookie" />
                </customHeaders>
            </httpProtocol>
        </system.webServer>
    </configuration>
    

    遗憾: 没有找到 只处理options的时候,对头文件进行设置。这里设置后,直接跳过了php的options代码检测。
    比较完美的方案是 发现是options处理,也放行,给到脚本进行处理。这里要是tomcat或其他中间件,可能就是另一种处理方式了。

    参考:https://blog.csdn.net/wanglui1990/article/details/79180887

    ---------------------------------------------
    生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
    ↑面的话,越看越不痛快,应该这么说:

    生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
  • 相关阅读:
    微信开放平台:OpenAPI、云开发与基础管理能力升级
    腾讯刘颖:从容器到低代码,腾讯云原生技术演进历程
    十年老站长心声:我为什么选择把 Hexo 网站迁移到 Webify
    腾讯云发布微搭生态开放计划,与合作伙伴携手共创产业未来
    SQL Server附加数据库出现错误5123的正确解决方法
    数据分页获取(二)
    Select语句
    数据分页获取(一)
    SQL Server中行转列原理
    QT实现Linux下系统监控小工具之二
  • 原文地址:https://www.cnblogs.com/pengchenggang/p/15338059.html
Copyright © 2020-2023  润新知