【发布时间】:2015-08-28 17:49:46
【问题描述】:
我正在尝试调用另一个域上的 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://localhost:8003/dataservice.svc/getData
来自我的客户端应用程序。这工作得很好(直接来自应用程序和浏览器)。 NTLM 身份验证正在工作;没有CORS问题。我像第一个例子一样得到 JSON。
但是当我使用我的 IP 地址调用代理时,就像这样
http://10.203.147.21:8003/dataservice.svc/getData
我只得到空的 JSON 骨架,没有其他错误。这里发生了什么?使用 localhost 但不是 IP。
有趣的是,实际服务也会发生这种情况;即,如果我使用数据服务器的 IP 地址(直接从浏览器调用)而不是名称,我会得到一个类似的空 JSON。
http://10.203.147.34:1234/dataservice.svc/getData
有人能解释一下这里发生了什么吗?如何解决?
【问题讨论】:
标签: node.js proxy wcf-data-services ntlm node-http-proxy