跨域的几种实现方式

  1. jsonp

     $.ajax({  
     type: "get",  
     url: "/home/ReturnJson",  
     dataType: "jsonp",  
     jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback, http://xxxx.com?callback=foo)  
     success: function (data) {  
             alert(data.name);  
         },  
     error: function () {  
             alert('fail');  
         }  
     });  
  2. 服务器设置响应头, 允许跨域(一般不建议这样做)

    res.header("Access-Control-Allow-Origin", "*");

  3. 服务器转发

    服务器与服务器之间没有跨域问题. 可以让本机服务器作为代理,来请求第三方服务器, 然后将第三方服务器数据返回回来,但是不会携带cookie

  4. 反向代理

    配置步骤:

    
    1> 找到 httpd.conf 文件
    2> 找到里面的 Proxy_modules 模块与 Proxy_http_module 模块, 将其注释去掉
    3> 找到要配置的虚拟主机
    4> 在里面添加两段代码
        ProxyRequests Off
        ProxyPass /api http://api.botue.com
    5> 重启 服务器
    
       DocumentRoot"D:/developer/wamp/www/studyit"
       ServerName studyit.com
       ProxyRequests Off
       ProxyPass /api http://api.botue.com
    


你可能感兴趣的:(跨域的几种实现方式)