如題,我按網上給的方法,用System.Web.Http.Cors做webapi跨域的設置,但還是無法跨域訪問,
代碼如下
啟動跨域:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Formatting;
using System.Web.Http;
namespace WebApi
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//開啟跨域設置
config.EnableCors();
//GlobalConfiguration.Configuration.EnableCors();
//返回json格式的控制
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));
}
}
}
控制器配置
using System.Web.Http;
using System.Web.Http.Cors;
namespace WebApi.Controllers
{
[EnableCors(origins: "http://localhost:40226", headers: "*", methods: "*")]
public class MouldController : ApiController
{
[ApiVisitFilter]
public MouldModel Get([FromUri]ParaModel model)
{
var mould = new MouldModel();
// 。。。。。。
return mould;
}
}
}
網上很多這樣的描述,都說能實現跨域訪問。我也相信微軟不至於特意開發一個System.Web.Http.Cors來騙我們,但為什麼我就沒成功呢?
到底有哪些地方沒注意或做錯了?
暫時還沒研究過通過dll來實現cors跨域,目前都是通過在config中添加配置實現的跨域