• 记一次坑爹的 “跨域” 问题


    由于(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 这个插件。帮助我调试了。

  • 相关阅读:
    Linux下c++使用pthread库
    一半,一绊
    【codevs3945】 完美拓印
    【poj2942】 Knights of the Round Table
    【bzoj2730】 HNOI2012—矿场搭建
    【poj1177】 Picture
    Tarjan学习笔记
    联赛总结
    【poj3461】 Oulipo
    【csuoj1014】 西湖三人行
  • 原文地址:https://www.cnblogs.com/CyLee/p/8011081.html
Copyright © 2020-2023  润新知