【发布时间】:2012-06-12 06:15:37
【问题描述】:
我正在尝试使用 JSONP 和 jQuery 的 ajax 方法从服务器获取数据。
$.ajax({
dataType: "jsonp",
url: "https://secure.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json",
type: "GET",
data: "msg=aaa",
cache: true,
jsonp: "jsoncallback",
// jsonpCallback: "callbackmethod",
success: function(encryptedMsg){
console.log("Encryption success!");
},
error: function(req, errmsg, thrownError) {
console.log("Error: HTTP " + req.status + " " + errmsg);
}
});
但是,错误控制台中显示以下错误:
Error: jQuery1720502636097747291_1339479763752 is not defined
Source File: https://secure.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=jQuery1720502636097747291_1339479763752&msg=aaa
Line: 1
如果你打开源文件的URL,你可以看到下面的JSON,而且看起来是正确的JSON。
jQuery1720502636097747291_1339479763752({
"title": "Recent Uploads tagged cat",
// ...
"items": [
{
"title": "Chaton",
// ...
},
// ...
]
})
我也试过用 jsonpCallback: "callbackmethod" 指定方法名,但是没有用。 我还使用了 $.getJson() 方法和 jquery-jsonp (http://code.google.com/p/jquery-jsonp/) 但结果是一样的。
浏览器是 Firefox 并使用 HTML4。 这用于 Firefox 插件。
您可以在此处阅读完整代码:https://builder.addons.mozilla.org/addon/1048275/revision/749
我在 common-content.js 的 getEncryptedMessage 函数中使用 $.ajax
提前致谢。
【问题讨论】:
-
那么,您是否尝试过不指定 jsonp 回调? jQuery 应该为你处理。
-
是的,我试过了。我试图在这段代码中访问 flickr 并且必须指定它,但实际上我想访问我自己的网络应用程序。当我使用自己的服务器应用程序时,我尝试在不指定“jsonp:”的情况下访问。
标签: javascript jquery firefox-addon firefox-addon-sdk