Базовая аутентификация внешнего rest api из jQquery

0

У меня проблема с доступом к внешнему api из одностраничного приложения, которое я пытаюсь создать.

Я могу войти в него из Postman с именем пользователя и паролем, а затем я получил AuthenticationTicket, который я могу использовать для личных данных для второго запроса.

Когда я пытаюсь войти в приложение из приложения, я получил заголовок "Нет" Access-Control-Allow-Origin "на запрошенном ресурсе".

Я не могу заставить его работать с jsonp, так как он должен публиковать логин?

        $.ajax
        ({
          beforeSend: function (x) {
          x.setRequestHeader('Authorization', 'Basic Username=x&Password=y');
        },
        type: "GET",
        url: "https://test.com/api/login/",
        dataType: 'json',
        async: false,
        success: function () {
            alert('you're in!');
        }

    });

ответ от api в Postman:

AuthenticationTicket → x
Cache-Control →no-cache
Content-Length →52
Content-Type →application/json; 
charset=utf-8
Date →Sun, 05 Jan 2014 20:29:36 GMT
Expires →-1
LogoutKey → x
Pragma →no-cache
Server →Microsoft-IIS/7.5
SessionTicket → x
X-AspNet-Version → X-AspNet-Version 4.0.30319
X-Powered-By → X-Powered-By
Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version) ASP.NET
Теги:
rest

2 ответа

0
Лучший ответ

конечно, С# исправляет сделку.

        WebRequest req = WebRequest.Create(@"https://url.com/api/login/?param=value&param2=value");
        req.Method = "GET";
        req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("Username:Password"));
        HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
0

Попробуйте использовать dataType для JSONP:

 dataType: 'jsonp',
  • 0
    тогда я получаю код состояния: 400 неверный запрос

Ещё вопросы

Сообщество Overcoder
Наверх
Меню