Как вы называете веб-сервис JSON, для которого требуется базовая аутентификация, с использованием jQuery? - PullRequest
12 голосов
/ 17 мая 2011

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

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

Ответы [ 3 ]

10 голосов
/ 17 мая 2011

Вам нужно будет установить соответствующий заголовок запроса для передачи учетных данных.Например, см. здесь .

$.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');
    }
});

К вашему сведению Я искал в Google jquery post with basic auth, и это была первая ссылка.

7 голосов
/ 03 февраля 2014

Вот способ сделать это с помощью jQuery для ваших копий и вставки:

$.ajax({
    url: "/somewhere",
    beforeSend: function(xhr) {
        xhr.setRequestHeader("Authorization", "Basic " + window.btoa(username + ":" + password));
    },
    success: function(result) {
        console.log(arguments);
    }
});
0 голосов
/ 17 мая 2011

Простой.

В asp.net создайте ссылку на сервис.Создайте веб-страницу (без пользовательского интерфейса) и создайте в коде несколько методов, которые являются «обертками» для этой службы (в C # / VB.NET).Украсьте методы с помощью [WebMethod] и установите для сериализации WebMethod значение JSON.

В качестве альтернативы вы можете сделать то же самое с любым другим языком (перл, php и т. Д.), Создав оболочку для веб-службы json.*

Причина, по которой вам нужна эта обертка, заключается в том, что таким образом вы избегаете межсайтовых скриптов ... ограничений в JS.Кроме того, если ваша страница обслуживается по HTTPS, то ваши JS-вызовы для вашей оболочки также будут выполняться по HTTPS, поэтому вам не придется беспокоиться о безопасности.

Оболочка JS позаботится о согласовании соединения, аутентификации и т. Д. *

Javascript на других ваших страницах может публиковать методы на этой странице следующим образом:

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

});

или $ .post, $ .get, $ .ajax ... все будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...