微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ajax – 使用CORS从TeamCity API获取JSON

我正在尝试使用 TeamCity API来检索JSON格式的构建数据,以便在实时显示显示.

显示一个简单的JavaScript应用程序,在与TeamCity服务器不同的域上作为Web页面提供.因此,必须将其作为交叉原始请求(CORS)处理.

我的问题是我找不到配置jQuery ajax请求的方法来处理CORS并要求TeamCity返回JSON响应(而不是XML响应).

我在我的ajax对象中尝试了各种设置组合,最后一个版本如下:

return $.ajax({
       url: url,dataType: "jsonp",/*accepts: "application/json",*/
       type: "GET",xhrFields: {
           withCredentials:true
       },beforeSend: function(xhrObj){
           xhrObj.setRequestHeader("Accept","application/json");
        }
     });

“url”包括TeamCity的登录凭据,以满足Http身份验证.

我得到的响应是我想要的数据,但是采用XML格式(下面的Request& Response标题的详细信息).

所以我的问题是如何配置ajax请求以从TeamCity获取JSON?

Request URL:https://xxxxx/**httpAuth/app/rest/projects**?    
callback=jQuery210040475526987574995_1394042043670&_=1394042043671
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:__test=1; TCSESSIONID=F409E3C78BD3649E4DCA846DF5DD97F2;           
RememberMe=-116716355^12#-8135087298707329913
Host:builds.quillpinpoint.co.uk
Referer:http://localhost/orqaadmin/BuildMonitor/Index
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) 
Chrome/33.0.1750.146 Safari/537.36
Query String Parametersview sourceview URL encoded
callback:jQuery210040475526987574995_1394042043670
_:1394042043671
Response Headersview source
Cache-Control:no-store
Content-Length:1009
Content-Type:application/xml
Date:Wed,05 Mar 2014 17:55:41 GMT
Expires:Thu,01 Jan 1970 00:00:00 GMT
Pragma:no-cache
Server:Microsoft-IIS/7.5
Set-Cookie:RememberMe=-xxxx
X-Powered-By:ARR/2.5
X-Powered-By:ASP.NET

解决方法

在TeamCity服务器上,登录,管理,服务器管理,诊断,内部属性,编辑内部属性添加

rest.cors.origins=*

这将添加所有网站.您可以添加以逗号分隔的网站列表.

V8
https://confluence.jetbrains.com/display/TCD8/REST+API#RESTAPI-CORSSupport

V9
https://confluence.jetbrains.com/display/TCD9/REST+API#RESTAPI-CORSSupport

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐