【发布时间】:2016-01-02 19:19:06
【问题描述】:
我正在使用 HTTP.call 对第三方服务提供商进行 Restful API 调用。
我在服务器端创建了相关的 Meteor 方法并从客户端调用它们。
我对 GET 调用没有任何问题。但是对于 POST 和 PUT 调用,它会在客户端返回内部服务器错误 (500),并在服务器上返回 405 Method not allowed。
当我尝试调试它时,我打开 Meteor Shell 并在那里调用 POST 和 PUT 调用,它们可以工作。但是当我从客户端调用方法时它们不会。
我有客户端...
Meteor.call('cancelCall', function (err, res) {
if (err) {
console.log(err);
} else {
console.log(res);
}
});
还有服务器端...
Meteor.methods('cancelCall', function () {
var url = 'http://example.com/some/params/cancel';
var result = HTTP.call('PUT', url);
return result;
});
我直接在 Meteor Shell 中输入的内容...
HTTP.call('PUT', 'http://example.com/some/params/cancel');
是什么导致了这种行为以及如何解决它?
非常感谢。
【问题讨论】:
-
您在上面的示例代码中缺少右括号/括号
-
谢谢,那只是我的错字
-
这一切对我来说都是正确的。我假设您只是在服务器上定义方法,对吧?
-
@ChristianFritz 是的,这些方法是从服务器定义并从客户端调用的。不知道为什么它只能在 Meteor shell 中工作
-
您能否提供在浏览器控制台中调用它们的错误/返回值?