【发布时间】:2014-09-13 01:03:53
【问题描述】:
我目前正在开发一个 GreaseMonkey 用户脚本,以提供对 Intranet 应用程序中某些表单字段的直接翻译。
在我使用此代码调用 Google Translation API 之前一切正常:
var apiurl = 'https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=fr%7Cen&q=';
$.getJSON(apiurl+encodeURIComponent(text)+"&callback=?",function(data){
alert('Translation Complete');
//Change text
});
这是我的问题:
- 我不得不使用 JSONP,因为这是一个跨域请求。为此,我在 URL 的末尾添加了
&callback=?字符串。getJSON回调未触发(但响应数据正确),我在 Firebug 控制台中收到此错误:
jsonp1298988446807 未定义
-
如果我改用
&callback=foo,FF 似乎不喜欢它,因为我的请求不再是 POST 请求,它没有完成但它显示(在网络面板中)OPTIONS request_url 405 Method Not Allowed 如果我创建一个自定义函数指定为回调,它也不起作用,因为该函数没有被调用(它只包含一个警报以检查它是否起作用)。
如果有人知道为什么这不起作用,请帮助我,因为我差点把头撞到墙上(也许会有所帮助^^)。
谢谢。
编辑:感谢 Scoobler,我相信我已经走得更远了。使用他的代码,我设法从我的脚本中得到了比
/ignore 更多的东西^^
该请求没有出现在 Firebug 的网络选项卡中,并且警报给出的响应是:
响应文本:未定义
返回状态:错误
抛出错误:抛出错误:[异常...“组件不可用”nsresult:“0x80040111(NS_ERROR_NOT_AVAILABLE)”位置:“JS 框架 :: file:///C:/Documents%20and%20Settings/username /Application%20Data/Mozilla/Firefox/Profiles/jmbr7ut9.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js :: 匿名 :: line 396" data: no]
与此同时,我一直在自己研究,并遇到了一个跨域请求的 jQuery/GreaseMonkey 桥,完整的演练here(来自this post),但这显示了完全相同的错误比 Scoobler 的剧本
【问题讨论】:
标签: jquery jsonp google-translate