2017-08-08 53 views
-2

我一直在使用SonarQube web API並發現一個有趣的差異。對於某些API調用,將dataType設置爲JSONP以繞過CORS錯誤可以正常工作,並以JSONP形式返回數據,而對於其他數據只能以JSON形式返回,因爲我正在發出一個跨源請求。我想知道這是否是我的錯誤,或者如果這是有意的?Web API並不總是返回JSONP數據

對於上下文,API調用/ api/resources可以使用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

如果它不服務jsonp,請使用代理 – charlietfl

+0

我的錯誤,他們在他們的網站上的鏈接寄給我這裏。我的印象是這是我打算與他們聯繫的方式。對於那個很抱歉! –

+0

@epascarello在我看來,關於開發人員工具的技術問題完全適合於StackOverflow平臺。我認爲沒有必要聯繫(支付)支持。 – slartidan

回答

0

web api端點的內部實現有所不同。在SonarQube < 6.0一些終點是用紅寶石編寫的。甚至在SonarQube 6.5中,有些終端使用protobuf序列化json,而另一些使用簡單的Stringbuilder。

根據內部實現,提供了更多或更少的「JSON特性」。