Ajax Broken in Browsers works in Android -


i can run code in android app (using phonegap adn jquery mobile) not on desktop browsers. gives me syntax error in firebug line =

var ticketlist = eval("(" + ajax.responsetext + ")");  

here code

// jscript source code  // ran on body load function dojsstuff() {     var ajax = ajax();     ajax.onreadystatechange = function () {         if (ajax.readystate == 4) {             var ticketlist = eval("(" + ajax.responsetext + ")");             if (ticketlist.listcount > 0) {             document.getelementbyid("opencount").innerhtml = ticketlist.listcount +" open tickets";                 (ticket in ticketlist.tickets) {                 // add stuff dom                 //addtickettolist(ticketlist.tickets[ticket]);                 }             }             else {                 document.getelementbyid("opencount").innerhtml = "all tickets reviewed";                 displaynoresults();             }         }     }     ajax.open("get", "http://website.com/listticketsrequest.ashx?pagenumber=1&pagesize=1&status=open", true);     ajax.send(null);     //document.addeventlistener("deviceready", ondeviceready, false);      //event check phonegap     //$('ul').listview('refresh');     $('#mtickets').page();     //showvars(); }  function ajax() {     var xmlhttp;     try     {         xmlhttp = new xmlhttprequest();     }     catch (e)     {     }     return xmlhttp; } 

**ticketlist variable in json comes across this=

{"tickets" : [{"ticketid": "1054","category": "n/a","submitteduserid": "bob.thebuilder","shortdescription": "test question qid:16668","creationdate": "2/16/2011 12:24:19 pm","ticketstatus": "open","longdescription": "something wrong question know hve right answer keeps telling me i'm wrong"},{"ticketid": "1053","category": "mission support","submitteduserid": "dave","shortdescription": "make  courseware revisions","creationdate": "2/16/2011 9:34:48 am","ticketstatus": "open","longdescription": "find tickets generated users possible courseware update."}], "pagecount": "6", "listcount": "11"} 

note phonegap if trying include phoengap functions in place code may executed on in browser make sure add phone gap function on "deviceready" or browser not render. example:

function onload(){         //event check phonegap         document.addeventlistener("deviceready", ondeviceready, true); } ... function ondeviceready()      {         // phonegap api ready         vibrate(90); // vib ack pg ready         $("a").click(function(event){         vibrate(30); // add 30 sec vib links         });              } 

my immediate response use jquery's getjson method, since you're aready using jquery. jquery's ajax provides broader base of browser compatibility. also, every time use eval(), small baby somewhere cries.

var url = "http://website.com/listticketsrequest.ashx?pagenumber=1&pagesize=1&status=open";  $.getjson(url ,function(ticketlist){     if (ticketlist.listcount > 0) {         $("#opencount").html(ticketlist.listcount +" open tickets");         (ticket in ticketlist.tickets) {             ...         }     } else {         $("#opencount").html("all tickets reviewed");         displaynoresults();     } }); 

if still doesn't work you, ensure json being returned valid. please stick method, , don't use eval!!

simplified update

var url = "http://website.com/listticketsrequest.ashx?pagenumber=1&pagesize=1&status=open"; $.getjson(url ,function(anynameyouwant){    alert(anynameyouwant.listcount + " open tickets"); }); 

update using 'data'

if url becomes long, might begin encounter problems. suggested pass url data via data argument.

var url = "http://website.com/listticketsrequest.ashx"; var data = "pagenumber=1&pagesize=1&status=open";  $.getjson(url, data, function(anynameyouwant){    alert(anynameyouwant.listcount + " open tickets"); }); 

Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -