I am trying to call a WCF Data service on another domain. The service uses NTLM, and the JSON returned depends on the authenticated user. I am using node-http-proxy to get over cross domain issues. The service, lets say
http://otherdomain:1234/dataservice.svc/getData
returns a JSON like
{
"description": "xxxxx",
"data": {
"subclass": [
[
{
"name": "xxxxx",
"keys": {
},
"children": "xx"
}
]
]
},
"parameter": "someparam",
"option": {
"someoption": []
}
}
For users with no data configured, it just returns an empty JSON skeleton like
{
"description": "",
"data": {},
"parameter": "",
"option": {}
}
In my proxy server I have set target
as http://otherdomain:1234 and call the service as
http://localhost:8003/dataservice.svc/getData
from my client application. This works perfectly fine(from application and browser directly). NTLM authentication is working; no CORS issue. I am getting the JSON like the first example.
But when I call the proxy using my IP address instead, like so
http://10.203.147.21:8003/dataservice.svc/getData
I get the empty JSON skeleton only, no other errors. What is happening here? Working with localhost but not IP.
Interestingly, this happens with the actual service as well; i.e. if I use the IP address of the data server (called directly from browser) instead of the name, I get a similar empty JSON.
http://10.203.147.34:1234/dataservice.svc/getData
Could someone explain what is going on here? How to resolve this?