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:\folder\server\PHP\php\7.3\php-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


__EOF__

本文作者Reciter
本文链接https://www.cnblogs.com/pengchenggang/p/15338059.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   彭成刚  阅读(263)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2019-09-26 mysqli_query($conn, "set names utf8"); //**设置字符集*** 不设置插入数据库就是乱码
点击右上角即可分享
微信分享提示