我有点新手在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