zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    RAID介绍,RAID5,10制作与损坏恢复
    ELK 安装过程
    centos 系统 yum安装软件报错
    linux系统磁盘分区
    python实现遍历两个文件夹,比对文件异常,生成比对报告功能
    win10新装系统,显卡风扇转动,链接正常开机,但设备管理器如果显示,无法更新驱动
    navicat premium 破解,无限试用方法
    安装vmware workstations 12 +ubuntu 遇到的一些问题
    win10 如何打开telnet,ftp等服务
    linux集群架构-keepalived高可用
  • 原文地址:https://www.cnblogs.com/huangzebin/p/6515198.html
Copyright © 2011-2022 走看看