如何使用Meteor.http.call

时间:2015-07-14 08:47:12

标签: javascript meteor

我正在尝试使用Meteor.http.call发送短信。我遇到两个错误:

  

第一个错误:当页面加载时," WebSocket连接到   ' WS://本地主机:3000 / sockjs / 632 / i0uapg48 /网页套接字'失败:WebSocket   在建立连接之前关闭。"

     

第二个错误:当我点击ebultenkydet时," Uncaught TypeError:不能   阅读财产'来电'未定义"

Template.footerLayout.events({
'click #ebultenkaydet': function(e, template) {
var auth_url="http://api.sorentesms.com/index.php"
var result = Meteor.http.call("POST", auth_url, {
data: {
              'apiNo':'1',
              'user':'test',
              'pass':'test123',

              'message':'hi',
              'number':'+905075587***',
              'from':'test',

           },
           headers: {
                 "content-type":"application/json",
                 "Accept":"application/json"
           },
         })
         }
 });
你能帮我解决一下吗? 谢谢大家

1 个答案:

答案 0 :(得分:1)

您正在客户端块内发送您的http请求,Meteor.http仅在服务器端可用。您必须将此块放在Meteor.isServer块中。

不要忘记meteor add http能够使用代码:

让我重写你的代码:

if (Meteor.isServer) {
  Meteor.methods({
    authCall: function () {
      this.unblock(); // Make sure server doesn't get block from this call
      var auth_url="http://api.sorentesms.com/index.php";
      return Meteor.http.call("POST", auth_url, {
        data: {
          'apiNo':'1',
          'user':'test',
          'pass':'test123',
          'message':'hi',
          'number':'+905075587***',
          'from':'test',
        },
        headers: {
          "content-type":"application/json",
          "Accept":"application/json"
        },
      })
    }
  });
}


Template.footerLayout.events({
'click #ebultenkaydet': function(e, template) {
    Meteor.call("authCall", function(error, results) {
        console.log(results); //results.data should be a JSON object
    });
});