簡體   English   中英

通過節點代理調用WCF服務僅在本地主機上有效

[英]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

有人可以解釋這是怎么回事嗎? 如何解決呢?

changeOriginoptions對象httpProxy設置為true可以解決此問題。 現在,該代理能夠從其他域正確協商NTLM。 猜測服務器正在為來自不同來源的請求返回空響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM