Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

香炉峰の雪は簾を撥げて看る

AppJet で適当Cross-Site

JavaScript

気分でこんなの書いてみた.
セキュリティー的にひどいとかそんなの気にしてないぜ! ってな感じの実験的なもの.
http://access.appjet.net/
Error 404 (Not Found)!!1

/* appjet:version 0.1 */

var default_params = [
 'url',
 'method',
 'callback'
]

function get_main(){
var url = request.params['url'];
var method = request.params['method'] || 'GET';
var onload = request.params['callback'] || '';
var params = create_params(request.params);
var option = {
  complete: true
}
var res;
if(!url){
  res = "";
} else {
  if(method.toUpperCase() == 'POST'){
    res = wpost(url, params, option);
  } else if (method.toUpperCase() == 'GET'){
    res = wget(url, params, option);
  }
  res.responseText = res.data || '';
  delete res.data;
}


response.setHeader("Content-Type", "text/javascript");
page.setMode('plain');
print(raw(onload+'('+uneval(res)+')'));

}

function create_params(q){
  var ret = {};
  keys(q).forEach(function(key){
    if(~default_params.indexOf(key)) return;
    if(key.substring(0, 3)=='DA_'){
      var val = q[key];
      key = key.substring(3);
    } else {
      var val = q[key];
    }
    ret[key] = val;
  });
  return ret;
}

dispatch();

まだちょっと作ったところだから変更するかもしれないし, 放置するかも.
使い方的にはこんな感じ. Frebug上で.

var Go = function(obj){
  console.info(obj);
}

var url = 'http://access.appjet.net/?url=http://appjet.com/app/895011780/source&callback=Go'
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);

きっと誰か作るか, 危険だから作ってなかったとかそんな感じだと思うけど, なんとなく思いついたので.