Web API 跨域问题

解决办法:

1、web.config

<system.webServer>
    <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="http://xxx.com, http://yyy.com" />-->
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />指定网站
<add name="Access-Control-Allow-Origin" value="http://xxx.com, http://yyy.com" />

2、System.Web.Http.Cors

3、扩展

时间: 2024-08-30 03:34:32

Web API 跨域问题的相关文章

Web Api跨域访问配置及调用示例

1.Web Api跨域访问配置. 在Web.config中的system.webServer内添加以下代码: <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="*" />

No &#39;Access-Control-Allow-Origin&#39; 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.con

Web API跨域访问

JS调用接口最需要注意的就是跨域问题 在.net平台下使js跨域变得非常简单 1.在nuget中引用 Microsoft ASP.NET Web API 2.2 Cross-Origin Support 包 2.再 Application_Start() 中加入 //跨域 GlobalConfiguration.Configuration.EnableCors(); 3.在 web.config 中设置权限 <system.webServer>  节点下  <httpProtocol&g

ASP.NET Web API 跨域访问

情景:http://localhost:8080/的web应用下访问http://localhost:8081下的Action时称为跨域访问. 前提,启动8080web应用实例,再启动8081web应用实例利用ajax去访问. 首先,在自己的Web API应用中,添加NuGet服务包,联机: 然后选择图中的,安装: 在Web API应用的App_Start/WebApiConfig.cs下的 public static void Register(HttpConfiguration config

Web Api 跨域处理

jQuery.support.cors = true;        function btnClick() {                       $.get("http://localhost:62733/Api/Test", {}, function (data) {                alert(data.name);            }); [CrossSite] public class CrossSiteAttribute : System.We

web api 跨域请求,ajax跨域调用webapi

1.跨域问题仅仅发生在Javascript发起AJAX调用,或者Silverlight发起服务调用时,其根本原因是因为浏览器对于这两种请求,所给予的权限是较低的,通常只允许调用本域中的资源,除非目标服务器明确地告知它允许跨域调用.假设我们页面或者应用已在 http://www.test1.com 上了,而我们打算从 http://www.test2.com 请求提取数据.一般情况下,如果我们直接使用 AJAX 来请求将会失败,浏览器也会返回“源不匹配”的错误,"跨域"也就以此由来. 2

Web API(七):Web API跨域问题

一.什么是跨域问题 跨域:指的是浏览器不能执行其他网站的脚本.是由浏览器的同源策略造成的,是浏览器施加的安全限制.(服务端可以正常接收浏览器发生的请求,也可以正常返回,但是由于浏览器的安全策略,浏览器不能处理服务端的返回). 那么什么是同源策略呢? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS.CSFR等攻击.所谓同源是指"协议+域名+端口"

ASP.NET Core Web API 跨域(CORS) Cookie问题

身为一个Web API,处理来自跨域不同源的请求,是一件十分合理的事情. 先上已有的文章,快速复制粘贴,启用CORS: Microsoft:启用 ASP.NET Core 中的跨域请求 (CORS) ASP.NET Core 配置跨域(CORS) 如果按照以上文章,一步一步操作,你会发现,虽然能跨域请求了,但是即使客户端开了(xhr.withCredentials = true)也无法将Cookie发送给API. 关于AllowAnyOrigin 这是因为请求的首部中携带了 Cookie 信息,

1.NET Core Web Api跨域问题

官方说明 CORS means Cross-Origin Resource Sharing. Refer What is "Same Origin" Part Detailed Procedure 具体实践 需要引入 Microsoft.AspNetCore.Mvc.Cors 包 Cors配置 Startup.cs文件ConfigureServices方法中,将Cors服务放到容器中 services.AddCors(options); 传一个options,指定名字并配置它,这个时候

ASP.NET Web API 跨域访问(CORS)要注意的地方

一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignature": "嫁人要嫁程序员,钱多话少死得早"} 然而,JSONP请求期望得到这样的JSON: jQuery123456({"YourSignature": "嫁人要嫁程序员,钱多话少死得早"}) 所以我们需要对WebAPI做拓展,让它支持这