2015-03-11 3 views
0

Я пытаюсь использовать Twitter oEmbed API, чтобы сделать запрос на встроенный твит. Код очень простой прямо сейчас:Twitter oMmbed запрос на перекрестный запрос заблокирован

xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
} 

xmlhttp.open("GET", "https://api.twitter.com/1/statuses/oembed.json?id=507185938620219395", true); 
xmlhttp.send(); 

Я получаю запрос перекрестного происхождения Заблокированная ошибка в Firefox. Что я делаю не так?

+0

Это, скорее всего, работать! 'http: // kylewbanks.com/blog/Fetching-Cross-Domain-JSON-Tweets-with-JavaScript-and-JSONP' –

+0

Ссылка @TimothyDalton мертва. – suBDavis

+0

@suBDavis попробуйте этот https://www.google.com/search?q=Fetching-Cross-Domain-JSON-Tweet s-with-JavaScript-d-JSONP', это первый хит –

ответ

1

Ответ "использовать JSONP"

$.ajax({ 
    type:  "GET", 
    url:  "http://api.twitter.com/1/statuses/oembed.json?id=507185938620219395", 
    dataType: "jsonp", 
    success: function(data){ 
    console.log(data); 
    } 
}); 
0

https://ctrlq.org/code/19933-embed-tweet-with-javascript

Это один обходной путь для фиксации ошибки

<!-- 
 
    Written by Amit Agarwal [email protected] 
 
    Paste this anywhere between the body tag 
 
--> 
 
    
 
<style> 
 
    
 
    #tweet { 
 
    width: 400px !important; 
 
    } 
 
    
 
    #tweet iframe { 
 
    border: none !important; 
 
    box-shadow: none !important; 
 
    } 
 
    
 
</style> 
 
    
 
<div id="tweet" tweetID="515490786800963584"></div> 
 
    
 
<script sync src="https://platform.twitter.com/widgets.js"></script> 
 
    
 
<script> 
 
    
 
    window.onload = (function(){ 
 
    
 
    var tweet = document.getElementById("tweet"); 
 
    var id = tweet.getAttribute("tweetID"); 
 
    
 
    twttr.widgets.createTweet(
 
     id, tweet, 
 
     { 
 
     conversation : 'none', // or all 
 
     cards  : 'hidden', // or visible 
 
     linkColor : '#cc0000', // default is blue 
 
     theme  : 'light' // or dark 
 
     }) 
 
    .then (function (el) { 
 
     el.contentDocument.querySelector(".footer").style.display = "none"; 
 
    }); 
 
    
 
    }); 
 
    
 
</script> 
 

+0

Пожалуйста, включите соответствующее объяснение для поддержки вашего ответа – gmuraleekrishna

+0

его в ссылке –