vm.getDotaApi = function () {
var url = "https://api.steampowered.com/IDOTA2Match_570/GetLeagueListing/v1/";
$http({
method: 'JSONP',
url: url,
dataType: 'json',
responseType: "json",
callback: 'JSON_CALLBACK',
params: {
key: 'my_key*********',
}
}).
success(function (response) {
}).
error(function (data, status, headers, config) {
});
}
В проекте использую AngularJS, серверного кода не использую, только Front-End
Делаю http-запрос на Dota 2, в Network статус запроса 200 (зеленый)
Могу посмотреть данные, которые я мог бы получить (в "Preview")
Но я не могу использовать эти данные, так как не могу зайти в 'success'для манипуляций з полученными данными (сразу перекидывает в 'error'). В консоле ошибка "Uncaught SyntaxError: Unexpected token"
Читал и англоязычный форум и русскоязычный, но нигде не нашел решение этой проблемы.
Ответ сервера не является валидным JSONP-ответом. Более того, это обычный JSON-ответ. насколько мне известно, api.steampowered.com не дает JSONP-интерфейса. И заголовков CORS он тоже не выдает. Поэтому вам нужна серверная часть.
Проблема решается на стороне сервера. Если в общих чертах, то для получения данных браузеры требуют разрешения на сервере. Steam не дает такого разрешения и по-этому нужно самому написать back-end и "разрешить" использовать запросы и получать данные. Я не знаю серверную часть, по-этому мне помог друг. `
string url = "https://api.steampowered.com/IDOTA2Match_570/GetMatchHistory/v1?key=my_key**************";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
Console.WriteLine("Response stream received.");
Console.WriteLine(readStream.ReadToEnd());
response.Close();
readStream.Close();
`
Пока искал решение проблемы, нашел альтернатива этому оффициальному API для Dota 2 - Opendota Но с этим API сложно организовать сайт с авторизацией и автоматической подгрузкой данных для аккаунта, так как там не используеться ключ Steam, который должен определять пользователя. Но там можете делать обычные get-запросы и спокойно получать данные, без программирования на стороне сервера.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Добрый деньОбратился хороший знакомый, попросил убрать вирус с его сайта, не знаю как он туда попал
Я загрузил и вывел объект, подключил управление с помощью trackballcontrols
При нажимании на клавишу - должно выводить в консоль содержимое поля ввода, но на самом деле выводит на один символ меньше, чем нужно