如何在Azure移动服务API中创建Ajax请求

时间:2014-06-15 18:58:12

标签: azure azure-mobile-services

我想在我的azure mobile services api get方法中创建一个jquery ajax帖子。也就是说,就像我在下面的那样。也就是说,我希望GET方法返回从我的ajax POST结果返回内容的数据。

我不会这么做。

exports.get = function(request, response) {

 $.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(x) { return MYLIST },
  dataType: dataType
});

   response.send(statusCodes.OK, { message : 'Hello World!' });
};

更新:

Per Carlos Post:http://blogs.msdn.com/b/carlosfigueira/archive/2013/12/12/expanded-login-scopes-in-azure-mobile-services.aspx我现在明白了exports.get代码应该位于azure移动服务的API部分。当我将该代码放入该部分时,我在jquery调用的失败事件中得到一个内部错误,500。我的警报确实显示我已成功登录谷歌。

    var client = new WindowsAzure.MobileServiceClient('https://svcc.azure-mobile.net/', val);
    $(document).ready(function () {
        $("#submit1").click(function () {
            client.login("google").done(function (results) {
                alert("You are now logged in as google: " + results.userId);
                $.ajax({
                    url: "http://xxxxx.azure-mobile.net/api/test1",
                    success: function (data, textStatus) {
                        debugger;
                        //data - response from server
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        debugger;
                    }
                });
            }, function (err) {
                alert("Error: " + err);
            });
        });

1 个答案:

答案 0 :(得分:0)

您应该使用一些node.js模块,它允许您发出HTTP请求。最简单的是'request' module,您可以require在服务器脚本上使用它来发出请求。例如,此代码应该执行您想要的操作:

exports.get = function(request, response) {
    var req = require('request');
    req({
        url: url,
        method: 'POST',
        body: JSON.stringify({ theBody: [ 'hello', 'world' ]}),
        headers: { "Content-Type": "application/json" }
    }, function(err, result) {
        response.send(statusCodes.OK, result);
    }
}