zoukankan      html  css  js  c++  java
  • 关于webapi跨域问题的一些坑坑

    1.可以直接使用第三方插件Cors,最方便

    2.在WebApiConfig下面添加全局操作:

     config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

    3.或者在Controller上面添加单个的

    [EnableCors(origins: "http://localhost:8081/", headers: "*", methods: "GET,POST,PUT,DELETE")]

    这种,以防止泄露过后造成的诸多麻烦

    4.在发布到IIS上过后,有时打开网页会报一个这种错误:

    Access to XMLHttpRequest at 'http://111.111.1.123/api/Company/GetCompanyInfoByPage' from origin 'http://11.111.1.123:9512' has been blocked by CORS policy:

    Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.

    表示定义了两个表头。既:在post请求的时候,会有两个Access-Control-Allow-Origin: *,在F12下面可以很明显的看到post请求的时候,有两个,就会报上面的那种错!!!

    在经过仔细检查发现,某些机器上的IIS会在创建IIS的时候自动添加一个表头:Access-Control-Allow-Origin: *

    5.解决办法:

     1)点击对应api下面的这个http响应表头项

     2)删除里面在创建网站时自动生成的:Access-Control-Allow-Origin:* .至此问题解决

  • 相关阅读:
    oracle增加字段,循环
    mybatis批量插入和更新
    oracle触发器
    Java中<? extends T>和<? super T>的理解
    函数式编程
    mybaitis
    操作word
    服务大厅流程
    jdk动态代理
    操作系统
  • 原文地址:https://www.cnblogs.com/zhang102137/p/11429450.html
Copyright © 2011-2022 走看看