Как вы называете веб-службу JSON, которая требует базовой аутентификации, используя jQuery?
Я немного новичок в javascript, но я пытаюсь вызвать веб-службу JSON, для которой требуется базовая аутентификация с помощью jQuery (или что-нибудь, что действительно работает).
Я не смог найти никаких реальных ответов на Google. Это то, что я пытаюсь сделать возможным?
Ответы
Ответ 1
Вам нужно будет установить соответствующий заголовок запроса для передачи учетных данных. Например, см. здесь.
$.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');
}
});
FYI Я искал Google для jquery post with basic auth
, и это была первая ссылка.
Ответ 2
Вот как это сделать с помощью jQuery для ваших копий и вложений:
$.ajax({
url: "/somewhere",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + window.btoa(username + ":" + password));
},
success: function(result) {
console.log(arguments);
}
});
Ответ 3
Simple.
В asp.net создайте ссылку на службу. Создайте веб-страницу (без интерфейса) и создайте несколько методов в коде, которые являются "обертками" для этой службы (в С#/VB.NET). Украсьте методы с помощью [WebMethod] и установите серию WebMethod Serialization в JSON.
В качестве альтернативы вы можете сделать то же самое с любым другим языком (жемчуг, php и т.д.), создав оболочку для веб-службы json.
Причина, по которой вам нужна эта оболочка, заключается в том, что таким образом вы избегаете межсайтового скриптинга... ограничений в JS. Также, если ваша страница обслуживается через HTTPS, ваши вызовы JS к вашей оболочке также будут превышать HTTPS, поэтому вам не придется беспокоиться о безопасности.
Ваша JS-оболочка будет заботиться о согласовании соединения, аутентификации и т.д.
javascript на ваших других страницах может публиковать на методах на этой странице:
$.post('pagename/method_name', {data:value}, callback(){
});
или $.post, $.get, $.ajax... все будут работать.