TFS Web服务适用于全局地址,但不适用于本地路径

时间:2014-06-11 13:45:29

标签: javascript web-services visual-studio-2012 tfs tfs2012

最近我遇到了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没有“主”网页。

是否有人遇到类似问题或针对此类情况采取的解决方法?我愿意接受建议。

提前致谢!

1 个答案:

答案 0 :(得分:0)

是的,这看起来像是一个跨域问题。

在检索JSON时,您可以通过发出JSONP请求来解决此问题。添加

dataType: 'jsonp'

到你的ajax设置对象。

可以找到更深入地描述JSONP的好答案here