ajax - 使用 CORS 从 TeamCity API 获取 JSON

标签 ajax json jsonp teamcity cors

我正在尝试使用 TeamCity API以 JSON 格式检索构建数据以实时显示。

显示是一个简单的 JavaScript 应用程序,作为与 TeamCity 服务器不同域上的网页提供服务。因此,这必须作为跨源请求 (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 格式(下面的请求和响应 header 的详细信息)。

所以我的问题是如何配置 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

关于ajax - 使用 CORS 从 TeamCity API 获取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22205560/

相关文章:

javascript - 按钮值传递到模式

javascript - 如何从ajax成功调用中获取响应

java - JSONObject.toString : how NOT to escape slashes

jQuery ajax/post 响应编码

jquery - 如何压缩 Javascript 中的 GET 参数以避免达到浏览器大小限制?

javascript - 如何防止 jQuery 在隐藏元素之前加载修改后的内容?

php - 动态下拉菜单

json - 将 freemarker 对象呈现为 JSON 的最简单方法是什么?

javascript - 如何直接追加Json对象?

javascript - 无法从我的网络服务器读取本地服务器上的 json 文件