一、题目背景申明:
编写挪动前端页面时须要接见背景体系接口。前端项目在当地(个人办公电脑)开辟,背景接口寄存后临盆的背景服务器,当地的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)
});