wcoder
@wcoder
Cross-platform developer

JQuery Ajax, пожалуйста дай мне CSV?

Интересует вопрос — можно ли средтвами jQuery получить CSV с другого домена/сайта, в моем случае Yahoo Finance



P.S. JSONP — запрашивает данные, но при парсинге данных выдает ошибку, очевидно из-за того что получает не JSON.

$.ajax({<br>
			url: 'http://finance.yahoo.com/d/quotes.csv?s=AAPL&f=bcll2l3nosx',<br>
			success: function (resp) {<br>
				console.log(resp);<br>
			},<br>
			error: function(e){<br>
				console.log('Error!');<br>
			},<br>
			dataType: 'jsonp'<br>
});<br>
<br>
В консоли хрома вижу: Uncaught SyntaxError: Unexpected token ,<br>
  • Вопрос задан
  • 7586 просмотров
Решения вопроса 1
taliban
@taliban
php программист
1. Нельзя использовать фреймы, из них потом нельзя будет забрать текст, если они с другого домена
2. Нельзя использовать JSONP он требует валидного JS ответа, а такового нет
3. Нельзя использовать обычный аякс, браузер не даст сделать запрос.
Можно сделать сервис который будет забирать csv с яху, переводить его в JSON и отдавать с помошью JSONP. Это единственный вариант, либо найдите сервис который уже работает с JSONP
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
taliban
@taliban
php программист
В двух словах как работает JSONP:
1. Создается запрос, и подключается скрипт с адресом который Вы вызываете.
2. Принимающая сторона формирует ответ вида yourCallbackFunction(<valid javascript params>)
2.a Колбек jQuery сам делает все сам.
2.б обратите внимание на <valid javascript params>
3.!!!
4. PROFIT

Вывод:
1. Для использования JSONP серверная сторона должна знать что Вы этого хотите и должна быть готова к этому
2. Серверная сторона должна отдавать валидный код
3. Uncaught SyntaxError: Unexpected token, — это значит что JS интерпретатор не готов к запятой в этом месте, а она там есть, потому как: 544.57,"+3.18 — +0.59%",… Не валидный JS код
Ответ написан
Попробуйте забирать csv простым текстом, а затем воспользоваться каким-нить плагином. Например, code.google.com/p/js-tables/wiki/CSV или любым другим.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы