由于(Android)webview的地址是file:// ,我猜测这是file相关的协议,而不是走http 协议的请求。

 

后端 API.NET 的 web.config 设置如下:



<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<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>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>


事实上,在webview中压根是不走 <httpProtocol> 这些协议的。(猜测),所以一直正常的运行着,

直到我走了HTTP协议~才发现出现了问题。

总而言之~

请务必注意必须完美符合<customHeaders>的三项,笔者由于headers多设置了一个项,而这个项并不是Content-Type,导致了请求发不出去,

而浏览器却帮我发送了OPTIONS。让我误以为我的POST变成了OPTIONS请求,绕了一大圈,事实上也学了不少HTTP相关的内容。

http://www.ruanyifeng.com/blog/2016/04/cors.html

也多亏了 spy-debugger 这个插件。帮助我调试了。