zoukankan      html  css  js  c++  java
  • No 'Access-Control-Allow-Origin' header is present on the requested resource——Web Api跨域问题

    最近使用C#写了一个简单的web api项目,在使用项目中的.cshtml文档测试的时候没有任何问题,但是在外部HBuilder上面编写.html通过Ajax调用web api路径时报错:

    No 'Access-Control-Allow-Origin' header is present on the requested resource.

    导致这个问题的原因是在跨域访问web api的api时,C#自带的web api并不能支持跨域访问,如果需要,可以更改配置来实现。

    1、更改Web.config文件,加上如下代码

    <httpProtocol>
          <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*"/>
            <add name="Access-Control-Allow-Headers" value="Content-Type,Token" />
            <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
          </customHeaders>
    </httpProtocol>

    配置了Web.config文件后,平常使用的GET,POST可以使用,但是使用PUT请求的时候还是会报405的错,即method not allow,然后需要配置Global.asax文件

    插入如下代码:

    protected void Application_BeginRequest()
    {
          if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
          {
                Response.End();
          }
    }

    配置这两个文件之后,web api就可以跨域访问了。

  • 相关阅读:
    oracle对中文的排序
    sql语句分页
    一些简单的PGSQL 操作
    angularJSngSelect
    angular+ionic返回上一页并刷新
    C语言博客作业02循环结构
    c语言第一次作业顺序、分支结构
    C语言博客作业03函数
    C语言博客作业02循环结构
    第零次作业
  • 原文地址:https://www.cnblogs.com/guo-xu/p/10623984.html
Copyright © 2011-2022 走看看