zoukankan      html  css  js  c++  java
  • 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

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

    生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
  • 相关阅读:
    ubuntu播放器
    第一次装ubuntu 没root密码时
    web服务器记录
    socket udp编程步骤
    nfs服务器配置
    带线程函数编译条件
    linux使用一个刚编译驱动方法
    tiny6410_led驱动Makefile
    java-设计模式-外观模式
    java-实现一个简单的java Web容器
  • 原文地址:https://www.cnblogs.com/pengchenggang/p/15338059.html
Copyright © 2011-2022 走看看