2012-04-18 4 views
1

Итак, я разрабатываю ленту новостей, которая существует на другом сервере, вместе со статическими документами PDF, которые описывается фидом.Проблемы с преобразованием Atom в JSONP

Я пытаюсь реализовать синтаксический анализ канала на стороне клиента, потому что я не уверен, какие будут серверные возможности сервера.

В контекстном обходного пути я разборе фид Atom в JSON с помощью Blastcasta.com

url = "http://www.blastcasta.com/feed-to-json.aspx?feedurl=http://[atomLocation]/newsletter.atom" 

data = {} 
$.ajax({ 
    url: url + "?callback=?", 
    dataType: "jsonp", 
    data: data, 
    success: function(data) { onSuccess(data); }, 
    error: function() { alert('Failed to parse feed'); }, 
}); 

Если я устанавливаю DATATYPE к «приложения/JSON» я получаю сообщение об ошибке перекрестное происхождения. Если я установил его в jsonp, я получу «Синтаксическая ошибка: неожиданный токен:».

Из того, что я понимаю, jsonp - это json, завернутый в функцию или что-то в этом роде.

Есть ли разумное решение проблемы, или мне нужно будет «сосать его» и разработать серверный сервер от атома до jsonp?

ответ

1

Эта служба возвращает либо JSON или что-то вроде:

variable = {...} 

если параметр param URL установлен, но не в формате JSON-P :(

Использование dataType: "jsonp" не может работать, и dataType: "json" не будет либо потому, что служба не разрешает междоменные ajax-запросы (поскольку нет заголовка Access-Control-Allow-Origin -> см.: CORS)

Обходным решением было бы вставить <script> тег так:

<script type="text/javascript" src="http://www.blastcasta.com/feed-to-json.aspx?feedurl=<your url here>&param=myVariable"></script> 

затем myVariable содержит возвращаемый объект.

Пример Демонстрация: http://jsfiddle.net/kFL9G/

+0

Woohoo !!! Это то, что для этой части «парама» было ... Я получил его для работы окончательно и с небольшой модификацией, теперь корм загружается из внешнего домена. –

Смежные вопросы