加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – 使用CORS从TeamCity API获取JSON

发布时间:2020-12-16 02:48:45 所属栏目:百科 来源:网络整理
导读:我正在尝试使用 TeamCity API来检索JSON格式的构建数据,以便在实时显示中显示. 该显示是一个简单的JavaScript应用程序,在与TeamCity服务器不同的域上作为Web页面提供.因此,必须将其作为交叉原始请求(CORS)处理. 我的问题是我找不到配置jQuery ajax请求的方法
我正在尝试使用 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读