Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как распарсить данные из JSONP (https://javascript.ru/forum/events/63989-kak-rasparsit-dannye-iz-jsonp.html)

winston3d 12.07.2016 22:39

Как распарсить данные из JSONP
 
Всем привет!

Никак не могу распарсить данные которые приходят в JSONP

Если использую $.getJSON то всё работает.

<html>
	<head>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
	</head>
	<body>
	
	
		<div id="result">Some result</div>

		<script>

			function myFunction() {
				$.getJSON('http://www.whateverorigin.org/get?url=https://www.google.com/&callback=?',
				function (data) {
					document.getElementById('result').innerText = data.contents;
				});
			}

		</script>

		<div onclick="myFunction();">Click me!</div>




	</body>
</html>


Но если пытаюсь написать без jQuery или подобного, то почему то не получается распарсить JSON приходящий в ответ:

<html>
	<head>
	</head>
	<body>
	
	
		<div id="result">Some result</div>

		<script>

			function foo(data)
			{
				var ood = JSON.parse(data);
				document.getElementById('result').innerText = ood.contents;
			}


			function myFunction() {
				var script = document.createElement('script');
				script.src = 'http://www.whateverorigin.org/get?url=https://www.google.com/&callback=foo'
				
				document.head.appendChild(script);
			}

		</script>

		<div onclick="myFunction();">Click me!</div>




	</body>
</html>


Конкретно жалуется он на: Uncaught SyntaxError: Unexpected token o in JSON at position 1
Потому что возвращается ему [object Object]

Почему возвращается объект? Что делать дальше? Как жить вообще?

рони 12.07.2016 22:53

winston3d,
:-?
function foo(data)
      {

        document.getElementById('result').innerText = data.contents;
      }

winston3d 13.07.2016 19:16

:D :D :D
На самом деле странно))) я был уверен что я так дела, и ничего не вышло))))
Видимо я пробовал так, когда была какая то другая ошибка)))))


Часовой пояс GMT +3, время: 22:09.