码迷,mamicode.com
首页 > 数据库 > 详细

No 'Access-Control-Allow-Origin' header is present on the requested resource——Web Api跨域问题

时间:2020-02-06 23:20:02      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:head   需要   prot   com   sax   跨域   hbuilder   导致   ati   

最近使用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就可以跨域访问了。

No 'Access-Control-Allow-Origin' header is present on the requested resource——Web Api跨域问题

标签:head   需要   prot   com   sax   跨域   hbuilder   导致   ati   

原文地址:https://www.cnblogs.com/superfeeling/p/12271181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!