Swagger codegen 生成的客户端访问控制问题
Swagger codegen generated client access control issue
我已经为特定 API、javascript 版本生成了带有 swagger codegen 的客户端应用程序。用 npm 等初始化它。一切都拍手。
然而,当我尝试使用生成的 api 从本地主机向 http://81.2.241.234:8080/species 发送获取请求时,出现以下错误:
Error: Request has been terminated
Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.
at Request.crossDomainError (bundle.js:2967)
at XMLHttpRequest.xhr.onreadystatechange (bundle.js:3049)
如果我从 chrome 调用 url,服务器响应中会出现提到的 headers。
一些更容易理解的代码:
var speciesApiInstance = new index.SpeciesServiceApi();
var opts = {
'start': 0, // Number | start position
'count': 10, // Number | count
'orderfield': "name", // String | order by
'orderdirection': "ASC" // String | order direction
};
var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
};
speciesApiInstance.getSpecies(opts, callback);
我做错了什么?在文档中找不到答案。
解决方法:我使用的是HTTPS连接,上面提到的IP只连接http,因此预检请求失败。修改了连接 url 以使用 http 调用 API 并且它工作正常。
我已经为特定 API、javascript 版本生成了带有 swagger codegen 的客户端应用程序。用 npm 等初始化它。一切都拍手。
然而,当我尝试使用生成的 api 从本地主机向 http://81.2.241.234:8080/species 发送获取请求时,出现以下错误:
Error: Request has been terminated Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc. at Request.crossDomainError (bundle.js:2967) at XMLHttpRequest.xhr.onreadystatechange (bundle.js:3049)
如果我从 chrome 调用 url,服务器响应中会出现提到的 headers。
一些更容易理解的代码:
var speciesApiInstance = new index.SpeciesServiceApi();
var opts = {
'start': 0, // Number | start position
'count': 10, // Number | count
'orderfield': "name", // String | order by
'orderdirection': "ASC" // String | order direction
};
var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
};
speciesApiInstance.getSpecies(opts, callback);
我做错了什么?在文档中找不到答案。
解决方法:我使用的是HTTPS连接,上面提到的IP只连接http,因此预检请求失败。修改了连接 url 以使用 http 调用 API 并且它工作正常。