diff --git a/ext/cloud-view.js b/ext/cloud-view.js index bb98fae..f860170 100644 --- a/ext/cloud-view.js +++ b/ext/cloud-view.js @@ -14,9 +14,14 @@ jx.cloudview.init = function(url,redir_url){//host,protocol){ // jx.cloudview.host = host // jx.cloudview.protocol = protocol jx.cloudview.url = url.trim().replace(/\/$/,'') + jx.cloudview.host = url.match(/^.+\/\/([a-z,0-9,.,-]+)\/.+$/)[1] + jx.cloudview.protocol = url.match(/^(https|http).+/)[1] if(redir_url != null){ jx.cloudview.redirect_url = redir_url } + if(jx.cloudview.handler != null){ + clearInterval(jx.cloudview.handler) + } } jx.cloudview.oauth.init = function (id, key,callback,err) { // var url = ":protocol://:host/cloud-view/" +id+"/get" @@ -81,9 +86,16 @@ jx.cloudview.oauth.listen = function (key,callback,err) { http.setHeader('platform', navigator.appName) http.setHeader('redirect_uri', key) http.post(url, function (x) { - - var info = JSON.parse(x.responseText) - callback(info) + try{ + var info = JSON.parse(x.responseText) + callback(info) + + }catch(e){ + if (err != null){ + err(e) + } + + } // jx.dom.set.value('name', info.user.uii) }) @@ -99,8 +111,9 @@ jx.cloudview.oauth.listen = function (key,callback,err) { if(jx.cloudview.popup != null){ if(jx.cloudview.popup.closed){ clearInterval(jx.cloudview.handler) + callback(null) if (err != null){ - err() + err(error) } } diff --git a/rpc.js b/rpc.js index 8dd08fe..ebfd127 100755 --- a/rpc.js +++ b/rpc.js @@ -61,8 +61,16 @@ jx.ajax.get.instance = function(){ this.obj.headers[key] = value; } } - this.setData = function(data){ - this.obj.data = data; + this.setData = function(data,mimetype){ + if(mimetype == null) + this.obj.data = data; + else { + this.obj.headers['Content-Type'] = mimetype + if(mimetype.match(/application\/json/i)){ + this.obj.data = JSON.stringify(data) + } + } + } this.setAsync = function(flag){ this.obj.async = (flag == true) ;