Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.04.2020, 10:28
Интересующийся
Отправить личное сообщение для Ulyana1992 Посмотреть профиль Найти все сообщения от Ulyana1992
 
Регистрация: 28.04.2020
Сообщений: 13

Не могу получить данные с файла xml
ДД! По аналогии кода, представленного тут, хотела сделать конвертер валют, но почему-то не работает ;(( Помогите пожалйуста разобраться в чем проблема. Файл рабочий. Спасибо!
<!DOCTYPE html>
<html>
<head>
<title>Currency</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
USD<input type='text' id='val1'>
KZT<input type='text' id='res' disabled><br>
KZT<input type='text' id='val2'>
USD<input type='text' id='res2' disabled><br>
<script>
   var course = 0;
   $.ajax({
      type: 'get',
      url: 'https://nationalbank.kz/rss/rates_all.xml',
      dataType: 'xml',
      success: function(response) {
           $(response).find("item").each(function(i,elem) {
              if($(elem).find('title').text() == 'USD') { 
                 course = +$(elem).find('description').text();
              }
        })
     }
});
$('input').on('keyup',function(){
    var value1, value2;
    value1 = parseFloat($('#val1').val()).toFixed(2);
    value2 = parseFloat($('#val2').val()).toFixed(2);
    
        //KZT to USD
        if(value2 <= 30000){
            $('#res2').val(value3 * 0.99 / course);
        }
        if(value2 >= 100000){
            $('#res2').val((value3 * 0.9) / course);
        }
        if(value2 >= 1600){
            $('#res2').val((value3 * 0.8) / course);
        }
          //USD to KZT
        if(value1 <= 100){
            $('#res').val(value1 * 0.99 * course);
        }
        if(value1 >= 1000){
            $('#res').val(value1 * 0.9 * course);
        }
        if(value1 >= 10000){
            $('#res').val(value1 * 0.8 * course);
        }
        
    });
</script>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 28.04.2020, 11:35
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Там CORS ошибка возникает

Access to XMLHttpRequest at 'https://nationalbank.kz/rss/rates_all.xml' from origin 'http://*****' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Ответить с цитированием
  #3 (permalink)  
Старый 28.04.2020, 20:30
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Ulyana1992
Файл рабочий.
И в чём выражается его работоспособность? На строках №№ 33, 36 и 39 используется необъявленная переменная value3, а значит перевод в талеры не работает. В вашей мошеннической схеме (строки №№ 32–50) забыты переводы начиная с $ 100 и до $ 1000 и в условии на строке №38 от ₸ 1600 до ₸ 30000 не обрабатываются из-за условия выше.

Если вам нужен конвертер валют из тенге в доллары и обратно без манипуляции сознанием и кошельком, то можно переделать ваш код так...
<!DOCTYPE html>
<html>
<head>
	<title>Currency</title>
</head>
<body>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
	USD<input type="number" id="val1">
	KZT<input type="number" id="res" disabled><br>
	KZT<input type="number" id="val2">
	USD<input type="number" id="res2" disabled><br>
	<script>
		$.ajax({
			type: "get",
			url: "https://cors-everywhere.glitch.me/https://nationalbank.kz/rss/rates_all.xml",
			dataType: "xml",
			success: function(xml) {
				rate = xml.evaluate("//item[title = 'USD']/description", xml, null, XPathResult.NUMBER_TYPE).numberValue;
			}
		});
		
		var rate = 0;

		$("input").on("input", function() {
			var value1 = parseFloat($("#val1").val());
			var value2 = parseFloat($("#val2").val());

			$("#res").val(value1 * rate);
			$("#res2").val(value2 / rate);
		});
	</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2020, 04:11
Интересующийся
Отправить личное сообщение для Ulyana1992 Посмотреть профиль Найти все сообщения от Ulyana1992
 
Регистрация: 28.04.2020
Сообщений: 13

spasibo koliuchka
Да, мой код намного больше, поэтому много версий было, проект большой, запуталась какую часть отправила, и да я говорила что исходный код не мой. И с этим фаилом по такой аналогии не работалось, и да мне нужны были манипуляции. Вы очень помогли, спасибо большущее!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно получить асинхронные данные? gsdev99 AJAX и COMET 1 25.06.2019 15:30
Gulp 4 - получить значение из файла в переменную MC-XOBAHCK Сборка проекта, утилиты 2 23.02.2019 19:46
Не могу передать данные из формы в php Chmil Элементы интерфейса 22 28.10.2018 14:31
Как получить данные по http ссылке Ракун Events/DOM/Window 7 17.08.2017 17:11
Получить данные с AnalyzerNode SWolf Events/DOM/Window 0 20.01.2017 22:52