Подтвердить что ты не робот

Как вы называете веб-службу JSON, которая требует базовой аутентификации, используя jQuery?

Я немного новичок в javascript, но я пытаюсь вызвать веб-службу JSON, для которой требуется базовая аутентификация с помощью jQuery (или что-нибудь, что действительно работает).

Я не смог найти никаких реальных ответов на Google. Это то, что я пытаюсь сделать возможным?

4b9b3361

Ответ 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... все будут работать.