2017-05-07 46 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

它在我的項目中不起作用,謝謝。 –