问题描述
问题描述是为了解释下面的"/yue",这个和解决方法没什么关系,可以忽略此部分直接看到解决办法。
我在写一个登陆系统的前端的时候,登陆成功,需要从登陆页面转到用户profile页面,出现了跨域问题。具体如下:
在登陆页面用ajax向"http://localhost:8082/yue/login"发送POST请求(我的http server监听的是8082端口,“/login”为后端login接口),登陆成功跳转到profile页面后还需要用ajax向"http://localhost:8082/yue/getUser"发送GET请求得到用户信息。
而我的nginx监听的是8085端口,也就是说登陆页面的url是"http://localhost:8085",由8085端口向8082端口发请求,由于端口不同会产生跨域问题。
解决办法
打开nginx.conf,我的在“/usr/local/etc/nginx/nginx.conf“,所以只需在终端(mac 机)输入
vim /usr/local/etc/nginx/nginx.conf
然后修改server如下:
server {
listen 8085; #监听端口
server_name localhost;
root /Users/xiayue/web; #这里是我的静态页面存放的位置
index index.html;
location /yue { #“/yue"后端路由组relativePath
proxy_pass http://127.0.0.1:8082; #这里是代理地址
}
}
也就是说可以用http://localhost:8085/yue/login来代替http://localhost:8082/yue/login,避免跨域问题。