最近筆者在一次項目中,去post後臺(api在iis另一個程序上)會提示405 (Method Not Allowed)和Response for preflight has invalid HTTP status code 405
用swagger去直接調用發現沒有任何問題,當時想到會不會是跨域問題,看了下webconfig發現有這麼一個配置
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
把這段註釋掉,再改一下httpProtocol這裏的配置
<httpProtocol>
<customHeaders>
<!-- Enable Cross Domain AJAX calls -->
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Content-Type"/>
</customHeaders>
</httpProtocol>