15. browser: clearwind.ca server: some.other.ca
The same origin policy prevents document or script loaded from one origin from getting
or setting properties of a document from a different origin.
-- From http://www.mozilla.org/projects/security/components/same-origin.html
25. Complete JSON time demo
$(document).ready(function() {
var url = quot;http://json-time.appspot.comquot;;
function showTime(data) {
$.getJSON(url + quot;/time.json?tz=quot; + $(quot;#zonesquot;).val() + '&callback=?',
function (json){
$(quot;#zones-msgquot;).text('The time is now ' + json[quot;datetimequot;] + '.');
});
};
$.getJSON(url + quot;/timezones.json?callback=?quot;,
function (json) {
var zones = $(quot;#zonesquot;);
for (var k = 0; k < json.length; k++) {
zones.append(quot;<option>quot; + json[k] + quot;</option>quot;);
};
zones.bind(quot;changequot;, showTime)
});
});
40. Proxy?
Because twitter doesn't have JSON export
Other services like Google RSS or Yahoo YQL have
problems
But checkout: http://developer.yahoo.com/yql/
and http://code.google.com/apis/ajaxfeeds/
42. Just feedparser
http://www.feedparser.org/
class JSONHandler(webapp.RequestHandler):
def get(self):
url = self.request.get(quot;urlquot;)
data = feedparser.parse(url)
if self.request.get(quot;callbackquot;):
data = quot;%s(%s)quot; % (self.request.get(quot;callbackquot;), data)
self.response.out.write(data)
49. No Model
In fact, completely static HTML
(with JS, no server side code)
50. Some Javascript
function move() {
var bounds = map.getBounds();
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var url = map_details.tags_domain + '/bounds.json?nelat=';
url += ne.lat() + '&nelon=' + ne.lng();
url += '&swlon=' + sw.lng() + '&swlat=' + sw.lat() + '&callback=?'
if (map_details.last_url != url) {
map_details.last_url = url
$.getJSON(url,
function(json) {
if (json) {
for (var k = 0; k < json.length; k++) {
...
51. Some more Javascript
function twitter() {
var tag = null;
for (var obj in tags) {
var url = map_details.atom_domain + '/twitter.json?tag=' + obj +
'&callback=?'
$.getJSON(url,
function(json) {
var tweet = null;
for (var k = 0; k < json.length; k++) {
....