tfs扩展因此不允许访问源'null'

时间:2018-10-01 13:03:21

标签: ajax rest tfs cross-domain teamcity

当我尝试通过TFS扩展调用Teamcity REST服务时遇到问题。

我还配置了TeamCity: rest.cors.origins =“ http://my.tfsserver” rest.cors.optionsRequest.allowUnauthorized = true

在TFS扩展名中,我调用以下网址: http://my.teamcity.server:80/app/rest/latest/projects使用“ XMLHttpRequest”

   const pair :string=this.settings.username+":"+this.settings.password;      
   const encodedCreds:string = btoa(pair);
   const basicAuthValue:string = "Basic "+ encodedCreds;       

    const apiurl:string="/app/rest/latest/projects";
    const completeUrl:string = this.settings.urlTeamCity+apiurl;       

    const  xhr = new XMLHttpRequest();
    xhr.open("GET",completeUrl,true);        

    xhr.setRequestHeader('Authorization', basicAuthValue);
    xhr.setRequestHeader("Access-Control-Allow-Origin" ,"http://my.tfsserver");
    xhr.onload=function(){
        console.log(xhr.responseText);
    }
    xhr.onerror=function(){
        console.log(xhr.response);
    }
    xhr.send();

我在控制台中遇到以下错误:

  

无法加载http://my.teamcity.server:80/app/rest/latest/projects:   飞行前响应无效(重定向)

在TeamCity休息日志中,我有以下两行:

  

[2018-10-01 14:12:49,891]调试[p-nio-80-exec-9]-   er.rest.APIController / rest-api-从来源'null'获得了CORS请求,   但不允许此来源。将原点添加到“ rest.cors.origins”   内部属性(以逗号分隔)以信任托管的应用程序   在域上。当前允许的来源是:启用的CORS来源:   [http://my.tfsserver]

     

[2018-10-01 14:12:49,892]调试[p-nio-80-exec-9]-   er.rest.APIController / rest-api-REST API请求处理完成   在1毫秒内,状态代码:302,请求:OPTIONS   '/ app / rest / latest / projects',来自客户端10.69.152.71:59256,无身份验证

根据最后一行,我将代码修改为:

...
   xhr.open("GET",completeUrl,true,this.settings.username,this.settings.password)
   xhr.withCredentials=true;
...

但是,我在chrome控制台和Team City Rest日志中仍然遇到相同的错误。

在chrome控制台的“网络”标签上,我可以看到“来源”标头为空,但我不明白为什么?

enter image description here

非常感谢您的帮助:)

0 个答案:

没有答案