我有一个从API检索数据的示例php查询:
$http = new Client();
$response = $http->get('https://connection.toserver.com', [ 'GetRequest' => [
'identifier' => '123',
'identifierType' => 'code',
'language' => 'eng',
'maxCount' => 1,
'contain' => ['name', 'lastname', 'age']
]
],
[
'headers' => [
'API-LANGUAGE' => 'eng',
'API-CALL-NAME' => 'Get',
'API-AUTH-TOKEN' => 'somerandomtoken']
]
);
如何使用HTTP包从Meteor服务器端函数发出相同的请求?我的最后一次尝试是这样的:
Meteor.methods({
getItemByEAN: function(code) {
check(code, String);
this.unblock();
var x = HTTP.get(url,
{headers:{
"API-LANGUAGE": "eng",
"API-CALL-NAME": "Get",
"API-AUTH-TOKEN": "somerandomtoken"
},
data: {
identifier: code,
identifierType: 'code',
language: 'eng',
maxCount: 1,
contain: ['name', 'lastname', 'age']
}
});
return(x);
}
});
此代码导致服务器错误"ReferenceError:数据未定义"我正在使用流星文档(http://docs.meteor.com/#/full/http_call)作为参考,但迄今为止没有成功。
提前感谢
编辑:我已经更新了当前的流星示例,以显示完整的meteor.methods()部分
我不知道您的服务器期望什么,但我看到的一个区别是,在php中,您将数据封装在"GetRequest"对象中。你试过这个吗:
HTTP.get(url,
{headers:{
"API-LANGUAGE": "eng",
"API-CALL-NAME": "Get",
"API-AUTH-TOKEN": "somerandomtoken"
},
data: { GetRequest: {
identifier: 123,
identifierType: 'code',
language: 'eng',
maxCount: 1,
contain: ['name', 'lastname', 'age']
}}
});