2009-04-21 74 views
1

我很難找出一種方法在Adobe空氣中從url中獲取一些數據。看起來在空中存在安全限制,因此進行正常回撥將不起作用。因此,像:Adob​​e Air中的JSONP回調函數

$.getJSON(requestURL, 
       function(json) 
      { 
       $('#response').append("working"); 
      } 
     ); 

不執行回調。有什麼方法可以解決這個問題嗎?我確實在http://css.dzone.com/news/jsonp-request-adobe-air找到了一些這方面的提及和一個可能的解決方案,但這似乎不適合我。我可以在普通的瀏覽器中運行代碼,但在空氣中無法調用dataFilter或成功方法。

回答

1

我想通了,所以我只是發表一個答案。感謝spaz開源twitter客戶端,我從中擷取了部分內容。

var xhr = $.ajax({ complete: function (xhr, rstr) 
    { 
     result = xhr.responseText; 
     cleanresult = result.substr(result.indexOf('(') + 1, result.lastIndexOf(')') - result.indexOf('(') - 1); 
     object1 = JSON.parse(cleanresult); 
    }, 
    error: function (xhr, rstr) { }, 
    success: function (data) {}, 
    beforeSend: function(xhr) {}, 
    processData: true, 
    url: requestURL, 
    type: "GET"} 
); 

這只是返回一個字符串,所以後來我用json2 library將它解析爲一個對象,並且似乎工作。似乎跨域和一切工作。