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

IIS web.config 跨域设置 不包含 options的设置 thinkphp tp3 跨域的更多相关文章

  1. python3.5 修改 IIS WEB.CONFIG的相关方法

    #!/usr/bin/env python3.5 # -*- coding:utf8 -*- from xml.etree.ElementTree import ElementTree,Element ...

  2. 配置子目录Web.config使其消除继承,iis7.0设置路由

    iis7.0设置路由 ,url转向,伪静态 <system.webServer>      <modules runAllManagedModulesForAllRequests=& ...

  3. linux网站配置文件.htaccess伪静态转换到IIS web.config中

    linux下的php网站放到Windows服务器IIS下.htaccess文件伪静态规则转换.   此办法只适合于linux下的php网站放到Windows服务器IIS下,网站除了主页面正常以外子页面 ...

  4. win10 IIS web.config加密不能访问:打不开 RSA 密钥容器

    C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 找到密钥文件, 根据时间判断具体是哪一个文件,赋予network service读权限

  5. asp.net夜话之十一:web.config详解

    转:http://blog.csdn.net/zhoufoxcn/article/details/3265141 在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我 ...

  6. web.config详解

    在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我们开发时的环境与部署环境可能不一致(比如数据库不一样),如果在代码中保存这些配置这些信息部署时需要到用户那里更改代 ...

  7. Asp.Net 之 Web.config 配置文件详解

    在asp.net中配置文件名一般默认是web.config.每个web.config文件都是基于XML的文本文件,并且可以保存到Web应用程序中的任何目录中.在发布Web应用程序时web.config ...

  8. Asp.Net 之 Web.config 配置文件详解 -转

    在asp.net中配置文件名一般默认是web.config.每个web.config文件都是基于XML的文本文件,并且可以保存到Web应用程序中的任何目录中.在发布Web应用程序时web.config ...

  9. Web编程前端之7:web.config详解 【转】

    http://www.cnblogs.com/alvinyue/archive/2013/05/06/3063008.html 声明:这篇文章是摘抄周公(周金桥)的<asp.net夜话> ...

  10. ASP.NET MVC 从零开始 - Web.config

    这篇文章是从我的 github 博客 http://lxconan.github.io 导入的. 在上一篇中,我们从零开始创建了一个非常简单的 ASP.NET MVC 应用程序.接下来,你是不是期望我 ...

随机推荐

  1. 14.3 Socket 字符串分块传输

    首先为什么要实行分块传输字符串,一般而言Socket套接字最长发送的字节数为8192字节,如果发送的字节超出了此范围则后续部分会被自动截断,此时将字符串进行分块传输将显得格外重要,分块传输的关键在于封 ...

  2. Linux 应用Kickstart部署系统

    Kickstart 是一种无人值守系统安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件,所以只要文件内包含了安装过 ...

  3. Spring一套全通3—AOP编程

    百知教育 - Spring系列课程 - AOP编程 第一章.静态代理设计模式 1. 为什么需要代理设计模式 1.1 问题 在JavaEE分层开发开发中,那个层次对于我们来讲最重要 DAO ---> ...

  4. 会话跟踪技术之COOKIE

    会话跟踪技术之COOKIE 一.为什么要用会话控制 我们需要我们的站点可以跟踪客户端与服务器之间的交互,保存和记忆每个用户的身份和信息. 几个疑问 我先访问A页面后访问B页面,HTTP无法知道是不是同 ...

  5. 教你用JavaScript实现粘性导航

    案例介绍 欢迎来的我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个粘性导航.移动页面导航仍在页面上方.通过实战我们将学会scrollY属性.offse ...

  6. deque的rotate方法

    deque对象支持旋转操作,可以将元素向左或向右循环移动. 例如: from collections import deque dq = deque([1, 2, 3, 4]) dq.rotate(1 ...

  7. TPopupMenu 替换 自身自动的 热键

    有时候自动生成的热键 并不是 很理想 这个时候 需要 用自己认为好的 方法如下图,加个(&热键)

  8. python 学习随笔1121

    Python 数据处理几个好用又简单的库: json re string pandas 与系统交互: subprocess os

  9. Zabbix 配置笔记

    Zabbix Server 安装参考 https://www.cnblogs.com/clsn/p/7885990.html 安装脚本 #!/bin/bash #clsn #设置解析 注意:网络条件较 ...

  10. wsl 配置ubuntu apt源为阿里源

    $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak $ sudo sed -i 's/security.ubuntu/mirrors.a ...