Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
186
rated 0 times [  190] [ 4]  / answers: 1 / hits: 60747  / 11 Years ago, tue, march 12, 2013, 12:00:00

I saw some examples of cross domain with ajax but it doesn't work.



<html xmlns=http://www.w3.org/1999/xhtml xml:lang=fr lang=fr>
<head>
<meta http-equiv=Content-Type content=text/html; charset=UTF-8 />
<script src=http://code.jquery.com/jquery-1.9.1.min.js></script>
</head>
<body>
<script type=text/javascript >
$(document).ready(function () {
var url = http://api.twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1;

$.get(url, function (data) {
console.log(data)
alert(data);
});
});
</script>
</body>
</html>


I try on chrome and the following error is given:



XMLHttpRequest cannot load http://api.twitter.com/1/statuses/user_timeline.json?screen_name=AssasNet&include_rts=1. Origin null is not allowed by Access-Control-Allow-Origin. 

More From » jquery

 Answers
36

You can't use $.get because that does an ajax call, which will be cross-origin and thus blocked by the Same Origin Policy, and the Twitter API you're trying to access doesn't support Cross-Origin Resource Sharing (or if it does, it doesn't allow either origin null or http://jsbin.com, which is the one I tried).



The API does support JSONP (which is not a true ajax call), though, so just changing the $.get to an $.ajax specifying JSONP works:



$.ajax({
url: url,
dataType: jsonp,
success: function (data) {
console.log(data)
alert(data);
}
});


Live Example | Source


[#79634] Monday, March 11, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
raveno

Total Points: 453
Total Questions: 92
Total Answers: 92

Location: France
Member since Thu, Oct 27, 2022
2 Years ago
raveno questions
;