這是更常見的問題。當我使用IE11,Chrome,FireFox和IE10時,我的Swagger API工作正常,但我收到錯誤:failed to parse JSON/YAML
,而我的swagger.inspec().state
正在返回"rejected"
。IE10 Swagger錯誤無法解析JSON/YAML
這裏是我如何實例化我的客戶:
import { API_URI } from '../config/app_config'; // '/accountservice/swagger.json'
import Swagger from 'swagger-client'; // "swagger-client": "^2.1.17"
export const buildAccountServiceClient =() => {
const swagger = new Swagger({
url: (!window.location.origin ? IE_API_URI : API_URI),
usePromise: true,
});
// Reconfigure swagger client to override service path if we're using a reverse proxy:
// /accountservice/swagger.json -> /accountservice
// Originally tried setting basePath to null, undefined, and '', but that didn't work
let basePath;
if (API_URI.startsWith('/')) {
basePath = API_URI.substring(0, API_URI.lastIndexOf('/'));
swagger.then((client) => {
client.setBasePath(basePath);
if (typeof(window) !== 'undefined') {
// use current protocol, so either http or https
client.setSchemes([window.location.protocol.slice(0, -1)]);
}
});
}
return swagger;
};
我也使用這就是爲什麼我有API_URI沒有定義爲完整的URL,但只是路徑中的代理服務器。
爲什麼在IE10以外的所有其他瀏覽器中都能正常工作?
哪個版本的Swagger UI?最新的3.0.x [不支持IE10](https://github.com/swagger-api/swagger-ui#browser-support)。 – Helen
nope我正在使用'「swagger-client」:「^ 2.1.17」' 我在這裏添加了更多的上下文:https://github.com/swagger-api/swagger-js/issues/1018 –