2016-07-14 175 views
0

嗨,我卡住了,不知何故找不到解決方案。這看起來很簡單,但還好。在這裏。我在Azure中有一個移動服務,我想用javascript訪問這個服務。我如何解決401未經授權的問題?我嘗試從MS提供的文檔,但沒有運氣。這是我到目前爲止(添加網址的關鍵不當然)我可以添加什麼來讓它工作?Azure移動服務和Javascript

var client = new WindowsAzure.MobileServiceClient(
"https://cdshop.azure-mobile.net/", 
"vGpqzyApJXXXXXXXXblQCWne73" 
); 

var getJSON = function (url, callback) { 
var xhr = new XMLHttpRequest(); 
xhr.open('get', url, true); 
xhr.responseType = 'json'; 
xhr.onload = function() { 
    var status = xhr.status; 
    if (status == 200) { 
     callback(null, xhr.response); 
    } else { 
     callback(status); 
    } 
}; 
xhr.send(); 
}; 


$(function() { 
$('#clickme').click(function() { 

    getJSON('http://cdshop.azure-mobile.net/api/cds/total?key=vGpqzyApJXXXXXXXXblQCWne73', function (err, data) { 
if (err != null) { 
    alert('Something went wrong: ' + err); 
} else { 
    alert('Your Json result is: ' + data.result); 
    result.innerText = data.result; 
} 
    }); 
}); 
}); 

回答

1

如果您正在創建自己的HTTP請求,您需要設置所謂的X-謨 - 應用程序的請求頭與你的應用程序鍵,例如「vGpqzyApJXXXXXXXXblQCWne73」,用於設置爲「應用程序」或「用戶」的表和API。 (假設您仍在使用移動服務;較新的App Service不使用此X-ZUMO-APPLICATION標頭。)爲「用戶」設置的表和API也需要帶有用戶身份驗證令牌的X-ZUMO-AUTH請求標頭。

或者,您可以使用您在第一行創建的MobileServiceClient,它會爲您執行此操作。 This page有調用API和表的示例。對於你的例子:

client.invokeApi("cds", { 
    body: null, 
    method: "get" 
}).done(function (data) { 
    alert('Your Json result is: ' + data.result); 
    result.innerText = data.result; 
}, function(error) { 
    alert('Something went wrong: ' + error); 
}); 
+0

非常感謝Eric,它像一個魅力 –