经由过程nginx反向代办处理前端接见的跨域题目

一、题目背景申明:
编写挪动前端页面时须要接见背景体系接口。前端项目在当地(个人办公电脑)开辟,背景接口寄存后临盆的背景服务器,当地的ajax要求没法直接接见背景接口,也就是遇到了跨域题目,如安在不转变背景接口的状况下处置惩罚跨域题目?

二、同源/跨域观点申明:
同源战略:是浏览器的一种安全战略,所谓同源是指域名、协定、端口完整雷同,只要同源的地点才能够互相经由历程ajax的体式格局要求。
跨域:同源或差别源说的是两个地点之间的关联,差别源地点之间的要求我们称之为跨域要求

三、nginx反向代办处置惩罚的道理:

将nginx装置在当地,然后将项目布置于nginx下,如许接见当地项目时用http://localhost/当地项目 即可接见。
然后设置nginx,经由历程反向代办的体式格局接见背景服务器,接见背景接口时运用http://localhost/背景接口称号 即可跳转到背景服务器。
如许浏览器之间的ajax要求完整满足浏览器域名、协定、端口雷同的同源战略,可在不转变背景接口的状况下防止跨域题目。

四、装置和设置nginx
历程重要参考了以下两篇文章,对道理的形貌很清楚、完美:
nginx处置惩罚跨域文章:https://www.cnblogs.com/renji…
nginx设置文章:http://www.cnblogs.com/renjin…

1)首先到nginx官网下载装置包:http://nginx.org/en/download….
2)windows版本nginx运用方法扼要申明(cmd窗口下):
协助: nginx -h
启动: start nginx
重载(nginx设置更新后可运用):nginx -s reload
住手: nginx -s stop 或许 nginx -s quit
3)nginx.conf 设置当地web项目接见途径和反向代办:

    server {
        listen       80;              //nginx服务器启动后的默许监听端口,可按本身状况修正
        server_name  localhost;        //nginx服务器的称号,

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        
        //以下是当地项目的布置设置:设置web服务器的根目录接见地点
        location / {
            root   myApp/mobile;
            index  index.html index.htm;
        }
        
        //以下是反向代办接见长途的背景接口的设置
        location /remote-interface/{
        //下面是反向代办设置,经由历程nginx服务器接见当地/remote-interface时,会将要求转到背景现实服务器去处置惩罚
            proxy_pass  http://remote-address/remote-interface/ ; 
        }

以上就是nginx当地项目布置和反向代办的设置。设置完成后,即可在项目中运用ajax要求接见背景接口。

五、发送ajax要求实验
当地项目中的ajax要求的代码示例以下,重点注重ajax要求的URL,要与nginx.conf的设置对应上:

var reqData = {             //post要求参数
                    "xxx":xxx,
            }

            $.post("/remote-interface/interface-name", reqData, function (data, status) {
                // console.log(arguments);
                if (status != "success") {     //post要求相应为失利的处置惩罚
                    console.log(status);
                    return;
                }
            
            ///要求获得相应数据后的处置惩罚操纵可写在这里
               
            }, "json").error(function () {
                // console.log(arguments)
            });
    原文作者:stevenzhang1346
    原文地址: https://segmentfault.com/a/1190000016240908
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞