你如何使用jQuery调用需要基本身份validation的JSON Web服务?

我在javascript上有点新手,但我试图调用一个JSON Web服务,需要使用jQuery(或任何真正有用的)进行基本身份validation。

我无法在谷歌上找到任何真正的答案。 我正在尝试做什么?

您需要设置适当的请求标头以传递凭据。 例如,请看这里 。

$.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搜索Google的jquery post with basic auth这是第一个链接。

以下是使用jQuery进行复制和粘贴需求的方法:

 $.ajax({ url: "/somewhere", beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Basic " + window.btoa(username + ":" + password)); }, success: function(result) { console.log(arguments); } }); 

简单。

在asp.net中创建对服务的引用。 创建一个Web页面(没有UI),并在后面的代码中创建多个方法,这些方法是该服务的“包装器”(在C#/ VB.NET中)。 使用[WebMethod]装饰方法并将WebMethod的Serialization设置为JSON。

或者,您可以通过为json Web服务创建包装器,对任何其他语言(珍珠,php,等等)执行相同的操作。

您需要该包装器的原因是因为这样可以避免JS中的跨站点脚本…限制。 此外,如果您的页面是通过HTTPS提供的,那么您对包装器的JS调用也将通过HTTPS,因此不必担心安全性。

您的JS包装器将负责协商连接,身份validation等…

您其他页面中的javascript可以发布到此页面中的方法:

 $.post('pagename/method_name', {data:value}, callback(){ }); 

或$ .post,$ .get,$ .ajax ……一切正常。