• cors实现跨域(.net和jquery)


    本文引用自:http://blog.csdn.net/xuwei_xuwei/article/details/29845865

    客户端

    一个jquery cors请求例子:
    $.ajax({  
                type: 'post',  
                crossDomain: true,  
                url: 'http://your.url.com/admin/login',  
                data: {  
                    UserName: $('#name:text', this.el).val(),  
                    PassWord: $('#Password:password', this.el).val()  
                },  
                dataType:'json',  
                xhrFields: {  
                    'Access-Control-Allow-Origin': '*'
                },  
                success: function(data, textStatus, jqXHR){  
                    console.log("getAllResponseHeaders:"+jqXHR.getAllResponseHeaders());  
                    console.dir(jqXHR);  
                    Backbone.history.navigate("#booklist",true);  
                }  
            });  

    服务端

    .net后端实现cors有3种方法

    1.服务端配置(iis7为例)

    在项目的web.config文件中添加下面的代码即可
    //全局配置
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <system.webServer>
       <httpProtocol>
         <customHeaders>
           <add name="Access-Control-Allow-Origin" value="*" />
         </customHeaders>
       </httpProtocol>
     </system.webServer>
    </configuration>

    2.asp.net 中,在每次对客户端的响应时,添加如下代码即可

    Response.AppendHeader("Access-Control-Allow-Origin", "*");

    3.ASP.NET Web API中,要做如下配置

    ASP.NET Web API 2 支持 CORS,要支持cors,请先用vs自带的nuget安装 Microsoft.AspNet.WebApi.Cors包
    然后在mvc项目中添加如下代码
    目录 App_Start 文件 WebApiConfig
    public static void Register(HttpConfiguration config)
    {
        // 其他配置,
    //下面是全局配置
    //var cors = new EnableCorsAttribute("www.example.com", "*", "*");
    //config.EnableCors(cors);
        config.EnableCors();
    }
    在对用的apicontrol通过特性声明对应的origin,headers,methods
    //类级别设置
    [EnableCors(origins: "http://example.com", headers: "*", methods: "*")]
    public class TestController : ApiController
    {
        // Controller methods not shown...
    }
    //方法级别设置
    public class ItemsController : ApiController
    {
        public HttpResponseMessage GetAll() { ... }


        [EnableCors(origins: "http://www.example.com", headers: "*", methods: "*")]
        public HttpResponseMessage GetItem(int id) { ... }


        public HttpResponseMessage Post() { ... }
        public HttpResponseMessage PutItem(int id) { ... }
    }
    ok,.net服务端的配置上述3中任选一种即可
    其他服务器和语言关于cors的配置请参考下面地址:http://enable-cors.org/server.html
    如图:


    原文地址:http://enable-cors.org/server_iis7.html
                        http://enable-cors.org/server_aspnet.html
                        http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

  • 相关阅读:
    散户必看 教您怎样在短期内从10万炒到100万
    店主学习篇 如何做服装经营能手
    苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲
    手头20万存款的租客 买房划算还是租房省钱?
    把幸福 亲了又亲
    周经理写给公司 的一封信
    土鸡市场前景:
    查看局域网内所有IP
    中国肿瘤年报出炉 浙江每312人就有1人患癌
    中药材喂土鸡或许大家还很疑惑吧
  • 原文地址:https://www.cnblogs.com/huangzebin/p/6515198.html
Copyright © 2020-2023  润新知