![](/img/trans.png)
[英]Node.js Express app only works via localhost, does not work over network (File or Directory not found)?
[英]Calling WCF service over node proxy works on localhost only
我正在嘗試在另一個域上調用WCF數據服務。 該服務使用NTLM,返回的JSON取決於經過身份驗證的用戶。 我正在使用node-http-proxy來解決跨域問題。 服務,可以說
http:// otherdomain:1234 /dataservice.svc/getData
返回JSON之類的
{
"description": "xxxxx",
"data": {
"subclass": [
[
{
"name": "xxxxx",
"keys": {
},
"children": "xx"
}
]
]
},
"parameter": "someparam",
"option": {
"someoption": []
}
}
對於未配置數據的用戶,它只會返回一個空的JSON框架,例如
{
"description": "",
"data": {},
"parameter": "",
"option": {}
}
在我的代理服務器中,我已將target
設置為http:// otherdomain:1234並將服務稱為
http:// 本地主機:8003 /dataservice.svc/getData
從我的客戶應用程序。 這工作得很好(直接從應用程序和瀏覽器)。 NTLM身份驗證正在運行; 沒有CORS問題。 我正在像第一個示例一樣獲取JSON。
但是當我改用我的IP地址呼叫代理時,就像這樣
http:// 10.203.147.21:8003 /dataservice.svc/getData
我只得到空的JSON骨架,沒有其他錯誤。 這是怎么回事 使用本地主機,但不能使用IP。
有趣的是,這也發生在實際服務中。 即,如果我使用數據服務器的IP地址(直接從瀏覽器調用)而不是名稱,則會得到類似的空JSON。
http:// 10.203.147.34:1234 /dataservice.svc/getData
有人可以解釋這是怎么回事嗎? 如何解決呢?
在changeOrigin
的options
對象httpProxy
設置為true
可以解決此問題。 現在,該代理能夠從其他域正確協商NTLM。 猜測服務器正在為來自不同來源的請求返回空響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.