Jum*_*awa 5 javascript jquery firefox-addon firefox-addon-sdk
我正在尝试使用JSON的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);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,错误控制台中显示以下错误:
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
Run Code Online (Sandbox Code Playgroud)
如果您打开源文件URL,您可以看到以下JSON,它似乎是正确的JSON.
jQuery1720502636097747291_1339479763752({
"title": "Recent Uploads tagged cat",
// ...
"items": [
{
"title": "Chaton",
// ...
},
// ...
]
})
Run Code Online (Sandbox Code Playgroud)
我还尝试用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
提前致谢.
不要在 Firefox 扩展中使用 JSONP。如果它有效,这将是一个安全问题,因为它允许某些 Web 服务器在您的扩展的上下文中运行代码。但是,在您的情况下,它不起作用,因为内容脚本不直接访问网页。JSONP 脚本在网页上下文中运行,并且看不到内容脚本定义的函数。
您应该使用该request模块向任何 Web 服务器发出请求,它支持 JSON 格式。当然,您不能从内容脚本中使用它,但您可以将消息发送回扩展程序,然后扩展程序应发出请求并将服务器响应发送回内容脚本。请参阅有关与内容脚本通信的文档。
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |