Я просто догадываюсь здесь, но $ .ajax.beforeSend должен нормально работать в Firefox, однако есть известная проблема с setRequestHeader в Firefox, и обычно ему нужно открыть XMLHttpRequest, прежде чем он сможет запустить setRequestHeader, ноэто в нативном javascript, и я не уверен, что jQuery как-то исправил это как-то внутренне?
Что-то вроде:
xhr.open(method,url,async,username,password);
xhr.setrequestheader("exmpl", "abcdef");
Проверьте firebug на что-то вроде "Ошибка: необработанное исключение: [Исключение ... "Компонент возвратил код ошибки: 0x804b000f [nsixmlhttprequest.setrequestheader]", чтобы увидеть, регистрируется ли это ошибка или регистрируются ли какие-либо другие ошибки, опубликуйте их здесь.При чтении документации для $ .ajax он говорит:
В настоящее время из-за ошибки в Firefox, где .getAllResponseHeaders () возвращает пустую строку, хотя .getResponseHeader ('Content-Type') возвращаетнепустая строка, автоматически декодирующая ответы JSON CORS в Firefox с помощью jQuery, не поддерживается.
Не знаю, имеет ли это какое-то отношение к вашей проблеме, поскольку это не совсем та же функция, но звучит несколько взаимосвязанно, на jQuery страницах для Ajax есть обходной путь.