В настоящее время я разрабатываю пользовательский скрипт GreaseMonkey, чтобы обеспечить прямой перевод некоторых полей формы внутри приложения для интрасети.
Все идет нормально, пока я не вызову 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, так как это междоменный запрос. Для этого я добавил строку
&callback=?
в конце моего URL. Обратный вызов getJSON
не сработал (но данные ответа верны), и я получаю эту ошибку в консоли Firebug:
jsonp1298988446807 не определено
Если я вместо этого использую &callback=foo
, FF, похоже, не понравится, так как мой запрос больше не POST, он не завершается, но показывает (на панели «Сеть»)
OPTIONS request_url 405 Method Not Allowed
Если я создаю пользовательскую функцию, которая указывается как обратный вызов, она также не работает, так как функция не вызывается (она содержит только предупреждение, чтобы проверить, работает ли она).
Если у кого-то есть хоть малейшее представление о том, почему это не работает, пожалуйста, помогите мне, потому что я близок к тому, чтобы ударить головой о стену (возможно, это поможет ^^).
Спасибо.
<ч />
РЕДАКТИРОВАТЬ : Благодаря Скублеру я поверил, что пошел немного дальше. Используя его код, мне удалось получить что-то большее, чем /ignore
из моего сценария ^^
Запрос не отображается на вкладке сети Firebug, и ответы, полученные с помощью предупреждений:
Текст ответа: не определено
Статус возвращен: ошибка
Ошибка выдана: Ошибка выдана: [Исключение ... "Компонент недоступен" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" местоположение: "JS frame :: file: /// C: / Documents% 20 и% 20Settings / username /Application%20Data/Mozilla/Firefox/Profiles/jmbr7ut9.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js :: anonymous :: line 396 "данные: нет] * 10
В то же время я продолжал исследовать самостоятельно и наткнулся на мост jQuery / GreaseMonkey для междоменных запросов с полным прохождением здесь (с этого поста ), но это показывает ту же ошибку, что и сценарий Скублера