{"id":670,"date":"2012-09-13T16:01:27","date_gmt":"2012-09-13T15:01:27","guid":{"rendered":"https:\/\/www.kolja-engelmann.de\/blog\/?p=670"},"modified":"2012-09-14T09:30:54","modified_gmt":"2012-09-14T08:30:54","slug":"jquery-ajax-request-in-adobeair-browser-control","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2012\/09\/jquery-ajax-request-in-adobeair-browser-control\/","title":{"rendered":"JQuery Ajax Request in AdobeAir Browser-Control"},"content":{"rendered":"<p>Ich schrie heute ein paar Stunden auf einen Bildschirm ein, in dem eine Adobe Air Anwendung lief, die ihrerseits eine Webseite von mir darstellte. Nur leider wollte diese Webseite nicht so wie ich wohl wollte &#8211; zumindest nicht innerhalb des Adobe Air Browsers. Au\u00dferhalb lief die kleine Ajax-Login Methode auf jedem Browser dem ich sie zum Rendering vorwarf. Sicherheit und Manipulierbarkeit dieser Demo mal v\u00f6llig au\u00dfen vor gelassen, wollte ich Daten via JQuery Ajax an ein Skript schicken und bei Erfolg eine Aktion durchf\u00fchren. Leider blieb das Skript irgendwo h\u00e4ngen. Ohne Fehlermeldungen, ohne die M\u00f6glichkeit Adobe Air zu debuggen usw.<\/p>\n<p>Nun bin ich heiser, habe aber den \u00dcbelt\u00e4ter gefunden. Die kleine Zeile <code>console.log(data)<\/code>, mit der ich w\u00e4hrend der Entwicklung die R\u00fcckgabewerte \u00fcberpr\u00fcfte, funktioniert zwar in jedem Browser, innerhalb Adobe Air jedoch nicht.<\/p>\n<pre class=\"lang:js mark:7 decode:true\">&lt;script type=\"text\/javascript\"&gt;\r\n  $(\"#loginFormSubmit\").click(function(){  \r\n    $.post(  \r\n      \"login.php\",  \r\n      {username: $(\"#loginFormUser\").val(), password: $(\"#loginFormPassword\").val()},  \r\n      function(data){ \r\n        console.log(data);\r\n        if(data.success == true)\r\n        {\r\n          [...]\r\n        }\r\n        else\r\n        {      \r\n          [...]\r\n        }\r\n     },  \r\n     \"json\"  \r\n    );  \r\n  });  \r\n&lt;\/script&gt;<\/pre>\n<p>Das ist nat\u00fcrlich richtig, denn <code>console.log()<\/code> ist eine Funktion, die von Firebug dem Browser hinzugef\u00fcgt wird, bzw. bei einigen bereits mitgeliefert ist und somit manchmal nicht existiert und folglich einen Fehler werfen m\u00fcsste. <del>Warum klappt es dann aber in anderen Browsern wie Safari, Chrome oder Internet Explorer, in denen ich garantiert kein Firebug installiert hatte ohne zu murren?<\/del> (siehe Kommentar von Sven) Um den Fehler in Zukunft zu umgehen definiere ich einen Workaround:<\/p>\n<pre class=\"lang:js decode:true\">if(!console || !console.log) \r\n{\r\n  console = {};\r\n  console.log = function(txt) {  throw new Error(txt)  };\r\n}<\/pre>\n<p>Done &#8211; wo sind die Valium?<\/p>","protected":false},"excerpt":{"rendered":"<p>Ich schrie heute ein paar Stunden auf einen Bildschirm ein, in dem eine Adobe Air Anwendung lief, die ihrerseits eine Webseite von mir darstellte. Nur leider wollte diese Webseite nicht so wie ich wohl wollte&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":558,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[72,60,59],"class_list":["post-670","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","tag-adobe-air","tag-javascript","tag-jquery"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/08\/stock_html.jpg","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=670"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/670\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/558"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=670"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}