IIS程序POST请求被触发两次的灵异事件

在CORS .net 跨域解决方案里,是这样介绍的(http://jingyan.baidu.com/article/03b2f78c190ad25ea237ae33.html)

同一个请求需要两个相同请求地址的方法,一个标记为“POST”,另一个标记为“OPTIONS“,实体方法为标记”POST“的方法,这 里”OPTIONS“方法不需要做任何逻辑操并且返回值为void即可(其实OPTIONS请求为浏览器的校验,发带参数的POST请求时浏览器会先发一 个OPTIONS请求,检验request 头信息和response头信息一致后才真正发起POST请求)

抓包发现,确实如此,浏览器产生了两个请求,OPTIONS service/service.php HTTP/1.1和POST /service/service.php HTTP/1.1

本想着像文中说的那样,让请求OPTIONS时,直接返回void,但是在看到配置php的时候,可以直接限制动作。试了一下,果然有用,现在ajax跨域,php程序只执行一次了。

iis里配置方法如下:找到程序站点,也可以选择服务器设置,点右边的处理程序映射,找到(aspx或者ashx)点编辑,在弹出对话框里,点请求限制,再选 谓词,点下面谓词之一,按照提示的输入GET,POST,我是之前为了省事,直接是默认选项(全部谓词),所以才遇到了这个问题。

IIS7如下

IIS6如下

本文借鉴前人经验并进行补充

原文地址:https://www.cnblogs.com/ff111/p/6552533.html