2017-06-05 48 views
2

我試圖使用React從開發服務器提取一些數據。package.json中的代理不影響提取請求

我在localhost:3001上運行客戶端,在port 3000上運行後端。

獲取請求:

const laina = fetch('/api/users'); 
    laina.then((err,res) => { 
     console.log(res); 
    }) 

當我運行我的開發服務器和的WebPack-dev的服務器我得到下面的輸出:

GET http://localhost:3001/api/users 404 (Not Found) 

我試圖確定在代理package.json所以它會將請求代理到API服務器,但是沒有任何改變。

這裏是我的的package.json文件

enter image description here

..和webpack.configenter image description here

請告訴我,如果你需要看別的來自我的項目。我很抱歉,如果我錯過了一些東西而不徹底,我對使用這些技術還是很陌生的。

+1

如果您的服務器運行在localhost:3000然後修改fetchRequest像 'fetch('http:// localhost:3000/api/users')'也確保你的後端啓用了cors –

+0

謝謝你。 –

+0

它是否解決了您的問題 –

回答

3

您可以修改讀取請求API網址,讓完整的主機名,因爲

fetch('http://localhost:3000/api/users') 

也確保你對你的後端啓用具有CORS

如果您想thourgh的WebPack重定向,您可以嘗試devServer.proxy作爲

devServer: { 
    inline: true, 
    contentBase: './dist', 
    port: 3001, 
    proxy: { "/api/**": { target: 'http://localhost:3000', secure: false } } 
} 
+0

你永遠不應該啓用cors。 –

+0

@AakashVerma,我完全不同意你的評論,當你需要將數據提供給位於不同域的前端時,你需要啓用cors,但是,我同意你可能想對域進行過濾你信任 –

0

Webpack Dev Server在您的Webpack配置中使用devServer.proxy config來控制代理請求。

+0

感謝您的快速回復。我試過在devServer中指定代理,但它仍然不會將請求重定向到api服務器。 'devServer:{ 直列:真, contentBase: './dist', 端口:3001, 代理:{ 「/ API」: 「HTTP://本地主機:3000」 } }' 在網絡選項卡中的一般頭: '請求URL:http://本地主機:3001/API /用戶 請求方法:GET 狀態代碼:304未修改 遠程地址:127.0.0.1:3001' –