最近我遇到了TFS实施的问题。如果我使用TFS的域地址,那么WebService可以正常工作。 "https://tfs.name.com/tfs"
。
但是,如果在内部有人试图使用本地路径:"https://servername:8080/tfs/"
TFS可以工作,但是当WebService进入图片时,它会产生错误:
NetworkError:无法在'XMLHttpRequest'上执行'send':失败 加载 'https://tfs.name.com/TfsWebServices/TfsWorkItems.svc/ “controldetails”'。
并且不执行Extension应该执行的功能。控件的地址,“servername”路径也不会加载。
控件的功能取决于路径:
$.ajax({
type: "GET",
async: false,
cache: false,
contentType: "application/json",
url: "https://tfs.name.com/TfsWebServices/TfsWorkItems.svc/Control",
data: "datatypes"
dataType: "json",
processData: true,
success:
function (response) {
result = response.GetResult;
},
error:
function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
我确实认为这是跨域操作的问题,但是它是“跨域”,因为内部操作的“域”是服务器名吗?另外,通常可以通过在网站标题上添加一行来解决,但据我所知,TFS没有“主”网页。
是否有人遇到类似问题或针对此类情况采取的解决方法?我愿意接受建议。
提前致谢!
答案 0 :(得分:0)
是的,这看起来像是一个跨域问题。
在检索JSON时,您可以通过发出JSONP请求来解决此问题。添加
dataType: 'jsonp'
到你的ajax设置对象。
可以找到更深入地描述JSONP的好答案here。