Я пытаюсь вызвать Binance API для получения цены LTC в BTC, и я проверил ссылку в своем браузере "https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC" Как мне получить файл json по этой ссылке в мой файл javascript?
$(document).ready(function() { var url = 'https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC'; $.ajax( { url: url, dataType: 'jsonp', type: 'GET', success: function(data) { console.log(data); //returns nothing } }); })
Как уже упоминалось в другом ответе, существует проблема с CORS. Так что вы можете попробовать с proxyURL со стороны клиента, как показано ниже,
$(document).ready(function() { var url = 'https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC'; const proxyURL = "https://cors-anywhere.herokuapp.com/"; $.getJSON(proxyURL + url, function(playerData) { console.log(playerData); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Надеюсь, это поможет.
Запрос к https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC предоставляет данные json, в которых используется политика CORS
{"symbol": "LTCBTC", "price": "0.01520100"}
JSONP будет выглядеть как
myCallback ({"symbol": "LTCBTC", "price": "0.01520100"})
Это выглядит как иработает как функция Javascript / PHP.
URL-адрес для jsonp включает в себя обратный вызов в URL-адресе ... https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC&callback=myCallback
Но не поддерживается на этом сайте
{"code": - 1101, "msg": "Слишком много параметров; ожидается" 1 "и получено" 2 "."}
Может быть открыто с помощью phpна Вашем сайте?Я не могу выполнить тестирование из системы, в которой я работаю. На моем планшете нет настройки транспорта ssl для проверки сокетов.
Да, это работает из оболочки PHP.
myJSONP(<?php echo file_get_contents('https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC');?>);
При выполнении запроса от вашего браузера или почтальона или скрипача вы получите результат
Но при выполнении запроса из приложения вы не получите сообщение об ошибке
Access to XMLHttpRequest at 'https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
проблема должна быть устранена со стороны сервера.
Пожалуйста, обратитесь
Cors понимание
Кроме того, найти решение проблемы, если вы 'Используем C # .Net в качестве бэкэнда
Решение для Cors
Если вы проверяете консоль после изменения dataType: 'jsonp' на dataType: 'json', вы получите следующее, поскольку ваш код и его скрипт не находятся на одном хосте, и им нужно включить Access-Control-Allow-Origin для доступ из другого домена. Вы можете использовать cur, если вы используете php.
Запрос перекрестного источника заблокирован: та же политика происхождения запрещает чтение удаленного ресурса на https://api.binance.com/api/v1/ticker/price?symbol=LTCBTC. (причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).