2017-05-07 45 views
0

我用koa在本地打开了一个服务用于用户注册。使用nginx代理解决了跨域问题,但它仍然存在跨域?

的服务http://127.0.0.1:8081/api/user/register

前端服务http://127.0.0.1:8083/#/signup

所以我用的nginx的proxy_pass,这样

nginx setting

铬给我下面的提示

Chrome clonse

但请求发送成功,数据库存储相应data.why?

request

我的前端代码是

import axios from 'axios'; 
import qs from 'qs'; 

const host = 'http://127.0.0.1:8081/api/'; 

const registerUrl = `${host}user/register`; 

class User { 
    // user register 
    static async register(params) { 
     const result = await axios.post(registerUrl, qs.stringify(params)); 
     return result; 
    } 
} 

export default User; 
+0

东西似乎混在这里。在哪个端口侦听您的后端nodejs服务?哪一个监听nginx(用于后端代理传递)?前台如何服务?静态通过nginx? – Cyril

回答

0

我不知道这工作没有指定路线(URI)你想要代理...你应该这样做:

server { 
    listen 8081; 
    location /api { 
    proxy_pass http://127.0.0.1:8083/api; 
    } 
} 

或添加在nginx的必要的标头 - 那么这将允许你使用一个端口前端(8081)服务,另一个用于后端API(8083),而不必与CORS问题:

server { 
    listen 8083; 
    location/{ 
    add_header 'Access-Control-Allow-Origin' '*'; 
    add_header 'Access-Control-Allow-Credentials' 'true'; 
    add_header 'Access-Control-Allow-Methods' 'OPTIONS,GET,HEAD,POST,MERGE,PATCH,DELETE,PUT'; 
    } 
} 

代码/配置未经测试...但我希望这对你有意义

+0

它在我的项目中不起作用,谢谢。 –