Я пытаюсь скопировать весь фактический контент из моего блога Tumblr, используя сценарий, который я написал на другой веб-странице, но у меня возникли некоторые проблемы с получением доступа к контенту. Мой вызов ajax выглядит следующим образом:
$.ajax({
url: "http://solacingsavant.tumblr.com/",
dataType: 'jsonp',
success: function(data) {
var elements = $("<div>").html(data)[0].getElementsByTagName("ul")[0].getElementsByTagName("li");
for(var i = 0; i < elements.length; i++) {
var theText = elements[i].firstChild.nodeValue;
alert(theText); // Alert if I got something
// This is where I'll strip the data for the items I want
}
}
});
но поскольку консоль выдает мне ошибку «Ресурс интерпретируется как сценарий, но передается с типом MIME text/html», который Я заглянул сюда и безуспешно изменил соответствующий тег meta
в HTML моего блога на <meta http-equiv="Content-Type" content="application/javascript; charset=utf-8" />
Я также пытался использовать dataType: 'html'
(что имеет для меня больше смысла), но я получал консольную ошибку «Происхождение не разрешено Access-Control-Allow-Origin» который я также изучил и добавил метатег в свой блог Tumblr с <meta Access-Control-Allow-Origin="*" />
, но снова не удалось
Мой подход не работает, потому что Tumblr в целом не позволяет вносить изменения в Access-Control
? Если да, то как я могу обойти эту проблему? Если нет, то что я делаю неправильно?
БОЛЬШОЕ ИЗМЕНЕНИЕ (на основе полезных комментариев mikedidthis)
Кажется, я не могу сделать это без API Tubmlr, поэтому я получил ключ API и теперь имею доступ к результатам json, которые отправляет API. Я могу получить объект jsonp, используя ключ API в консоли. Мой javascript на данный момент:
$.ajax({
url: "http://api.tumblr.com/v2/blog/solacingsavant.tumblr.com/info?api_key=APIkeyGoesHeRe",
dataType: 'jsonp',
success: function(results){
console.log(results);
// Get data from posts here
}
});
Это сообщение SO помогло понять, как я могу изменить данные на моей странице Tubmlr из источника и узнать основную информацию о сайте, но не о том, как получить актуальные данные из отдельных сообщений. Я попытался просмотреть объект results
и не смог найти никаких данных, связанных с сообщениями, а также не смог добавить результаты в jsfiddle. Итак, мои вопросы теперь таковы: "Могу ли я копировать данные (скажем, письменный текст в сообщении) из отдельных сообщений, используя этот подход? Если да, то как? Если нет, какой другой подход мне следует использовать?"