我一直在使用SonarQube网络API,发现了一个有趣的差异。对于某些API调用,将dataType设置为JSONP以解决CORS错误可以正常工作并将数据作为JSONP返回,而对于其他人来说,数据只能作为JSON返回,因为我正在进行跨源请求。我想知道这是否是我的错误或是否有意?
对于上下文,对/ api / resources的API调用可以使用JSONP进行响应,但是对/ api / issues / search的调用则不能。
$.ajax({
url: 'http://sonar.optum.com/api/resources?resource=IDWS-IdentificationWorkstation:master&metrics=coverage',
method: 'GET',
dataType: "jsonp"
})
上述AJAX调用成功运行并返回JSONP数据。
$.ajax({
url: 'http://sonar.optum.com/api/issues/search?projectKeys=IDWS-IdentificationWorkstation:master',
method: 'GET',
dataType: "jsonp"
})
此AJAX调用没有。
答案 0 :(得分:0)
Web api端点的内部实现各不相同。在SonarQube中< 6.0一些端点是用ruby编写的。甚至在SonarQube 6.5中,一些端点使用protobuf序列化json,其他端点使用简单的Stringbuilder。
取决于内部实施,更多矿石和JSON功能"提供。