我正在尝试使用
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] 举报,一经查实,本站将立刻删除。