2015-09-28 72 views
0

我已經創建了一個SPA,並且我正在使用Angular來完成此操作。現在,當我需要閱讀在Node.js中使用Angular創建的URL時,我遇到了一個問題。從Angular-URL中獲取Node.js中的查詢參數

例如:

我的網址是:

http://example.com/#/home?answer=yes 

一般來說,如果該URL會是這樣的:

http://example.com/home?answer=yes 

我可以通過使用已經得到了 「答案」 :

app.get("/home", function(req,res) { 
var answer = req.query.answer; 
}) 

但是因爲#節點似乎無法解析url。

請幫我解決這個問題。

回答

0

#之後的url部分被稱爲片段部分,傳統上它甚至不會發送到服務器,因爲它意味着包含客戶端的數據。

見維基百科上fragment identifier的細節:

代理髮送的URI到服務器,但不發送該片段。相反,代理等待服務器發送的資源,然後,代理處理資源根據文檔類型和片段值

這意味着,當您發送GET請求用於在這樣的URL作爲http://example.com/#/home?answer=yes你的例子example.com將被提取給你,並且它取決於你的客戶端代碼來解析#/home?answer=yes片段,這將按照慣例涉及例如呈現home路由(在SPA內),考慮到answer的給定值參數。

由於上述原因,如果要解析服務器端的/home?answer部件,請求URL應在任何#標誌之前包含它們。