Adobe Air中的JSONP回调函数
问题描述:
我很难找出一种方法在Adobe空气中从url中获取一些数据。看起来在空中存在安全限制,因此进行正常回拨将不起作用。因此,像:Adobe Air中的JSONP回调函数
$.getJSON(requestURL,
function(json)
{
$('#response').append("working");
}
);
不执行回调。有什么方法可以解决这个问题吗?我确实在http://css.dzone.com/news/jsonp-request-adobe-air找到了一些这方面的提及和一个可能的解决方案,但这似乎不适合我。我可以在普通的浏览器中运行代码,但在空气中无法调用dataFilter或成功方法。
答
我想通了,所以我只是发表一个答案。感谢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将它解析为一个对象,并且似乎工作。似乎跨域和一切工作。