我用postman和网页打开都可以正常获取数据
不需要额外设定token这个请求头
但是用node去调用接口的时候返回了一下的错误:
- Invoke restful without Token header. RequestURI: [/mws-server/service/rs/algorithmModelService/v1/algorithmsModels]
2020-02-09T14:49:04.074+08:00 ERROR mwm-web [11936] [/mws-server/service/rs/algorithmModelService/v1/algorithmsModels] - 403 2020-02-09T14:49:04.074+08:00 ERROR mwm-web [11936] [/mws-server/service/rs/algorithmModelService/v1/algorithmsModels] - Token is null,please apply a token!
代码是这样的:
let res = await this.app.getData(ctx, baseUrl + path, {});
getData函数:
async getData(ctx, url, options) {
const responseData = await this.get(ctx, url, options);
return HandleResult.handleData(responseData);
},
get函数:
async get(ctx, url, options) {
return await this.commonCurl(ctx, url, options);
},
commonUrl函数:
async commonCurl(ctx, path, options, param, serviceType) {
const method = param ? "POST" : "GET";
options = Object.assign({
dataType: 'json',
method: method
}, options);
if (param) {
options.data = param;
options.contentType = 'json';
}
let start = Date.now();
let response = null;
try {
serviceType ? (response = await this.consulCurl(serviceType, path, options)) : (response = await this.curl(path, options));
} catch (e) {
response = e.message;
console.log(e)
throw BusinessError.build(e, ErrorCodes.COMMON_0200);
} finally {
let packageObj = { url: `${method} ${path}` };
param && (packageObj.param = param);
serviceType && (packageObj.service = serviceType);
packageObj.response = response;
packageObj.time = new Date();
packageObj.timeConsume = `${Date.now() - start} ms`;
!ctx.body && (ctx.body = { timeStamp: new Date().getTime() });
if (!ctx.body.packageArray) {
ctx.body.packageArray = [packageObj];
} else {
ctx.body.packageArray.push(packageObj);
}
}
return HandleResult.handle(response);
},
这段报错在你本地 dev 环境打断点 debug 一下,明确一下 token 的校验逻辑是啥