Javascript 即使禁用了CORS,IIS也在执行请求

Javascript 即使禁用了CORS,IIS也在执行请求,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我有两个MVC ASP.NET应用程序。我正在尝试从一个应用程序向另一个应用程序发出ajax POST请求。默认情况下,CORS应该被禁用,我在控制台中收到警报: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 所以一切都应该是对的。但是 我意识到这个请求执行了一个特定的操作。这怎么可能?即使CORS已被禁用,为什么仍执行该请求?对http://localhost:2211/Home/Form,但是该

我有两个MVC ASP.NET应用程序。我正在尝试从一个应用程序向另一个应用程序发出ajax POST请求。默认情况下,CORS应该被禁用,我在控制台中收到警报:

无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”

所以一切都应该是对的。但是


我意识到这个请求执行了一个特定的操作。这怎么可能?即使CORS已被禁用,为什么仍执行该请求?

http://localhost:2211/Home/Form
,但是该请求的响应不包含标题,这导致浏览器拒绝为您处理响应

在服务器响应向其发出的请求并提供标头之前,浏览器将不知道该请求是否被允许,也就是说,浏览器上的ONU是对
访问控制允许来源
标头做出反应的,而不是服务器

根据所使用的浏览器,您甚至可能在此处看到不同的行为,例如:

Internet Explorer在比较源时不考虑端口。


CORS是客户端和服务器端的混合体-请求尚未执行。它到达了服务器,然后服务器拒绝了。该消息来自客户端浏览器,拒绝连接到其他位置。您是如何禁用CORS的?@JamesThorpe请求已执行。该操作更改数据库中的一个值。该值已更改为请求中的新值@阿德里安,其实我什么都没做。但是因为响应没有任何
访问控制
头,所以我假设CORS被禁用。直到,CORS没有停止请求,如果头不在那里或者accept没有覆盖请求,它会停止正在使用的响应。那么,阻止来自我的白名单上不可用的域的所有请求的最佳方法是什么?通过手动检查
Origin
header?@user3609885,差不多!不幸的是,您没有得到任何实际有效的保证,我怀疑这就是为什么浏览器有责任检查并实现CORS检查。我(阅读:任何人!)都可以编写一个应用程序,向您的服务器发出请求,并伪造源代码。因为CORS的工作方式是这样的,如果您不希望服务器端代码在从“不受信任”的源调用时运行,那么这不是适合您的解决方案。据我所知,您不允许更改
头,或者您的意思是更改数据包层上的原始数据?但是,只有当您使用http而不是https时,才有可能做到这一点?最好的方法就是使用某种防伪令牌或身份验证系统?我说的对吗?@user3609885,很抱歉响应太晚,您(作为web浏览器)可能无法更改某些标题,但如果您编写了一个向URL发出请求的应用程序,您可以发送请求中所需的任何标题。如果未经授权调用方不能/不应该执行代码,则验证和授权是正确的做法!=)