我有點新手在JavaScript,但我想調用一個JSON Web服務,需要基本認證使用jQuery(或任何真正可行的)。如何使用jQuery調用需要基本認證的JSON Web服務?
我一直沒有能夠在Google上提出任何真正的答案。我正在嘗試做什麼?
我有點新手在JavaScript,但我想調用一個JSON Web服務,需要基本認證使用jQuery(或任何真正可行的)。如何使用jQuery調用需要基本認證的JSON Web服務?
我一直沒有能夠在Google上提出任何真正的答案。我正在嘗試做什麼?
您將需要設置適當的請求標頭來傳遞憑據。例如見here。
$.getJSON({
'url': 'http://host.com/action/',
'otherSettings': 'othervalues',
'beforeSend': function(xhr) {
//May need to use "Authorization" instead
xhr.setRequestHeader("Authentication",
"Basic " + encodeBase64(username + ":" + password)
},
success: function(result) {
alert('done');
}
});
僅供參考我搜索谷歌的jquery post with basic auth
,這是第一個鏈接。
簡單。
在asp.net中創建一個對服務的引用。創建一個網頁(沒有UI),並在後面的代碼中創建多個方法,這些方法是該服務的「包裝器」(在C#/ VB.NET中)。使用[WebMethod]裝飾方法並將WebMethod的序列化設置爲JSON。
另外,您可以通過爲json web服務製作封裝來對其他任何語言(pearl,php,或其他)執行相同的操作。
你需要這個包裝的原因是你避免跨站腳本的方式...... JS的侷限性。另外,如果您的頁面通過HTTPS提供,那麼您的包裝器的JS調用也將通過HTTPS進行,因此不必擔心安全問題。
你的JS包裝將採取協商的連接,認證等保健...
其他網頁中的JavaScript可以發佈到該頁面中的方法爲:
$.post('pagename/method_name', {data:value}, callback(){
});
或$ .post,$ .get,$ .ajax ...都會工作。
下面是用jQuery做您的拷貝和粘貼需求的方式:
$.ajax({
url: "/somewhere",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + window.btoa(username + ":" + password));
},
success: function(result) {
console.log(arguments);
}
});
在這裏看到一個例子:http://stackoverflow.com/questions/671042/using-javascript-with-the -twitter-api/671054#671054 – 2011-05-17 02:59:50
+1:很好的問題;探索了我從未想過的Ajax的一個方面。 – 2011-05-17 04:14:39
JavaScript是否在與Web服務位於同一域的頁面上執行? – 2011-05-17 04:46:40