Читаю 
http://xmlhttprequest.ru/ :
.open() ...
Первый параметр method - HTTP-метод. Как правило, используется GET либо POST, хотя доступны и более экзотические, вроде TRACE/DELETE/PUT и т.п.
Дай, думаю, попробую сделать TRACE. Тупо копирую код getXmlHttp() с сайта и пишу:
function trace_request()
        {
            var req = getXmlHttp();
            req.open('TRACE', 'trace.php', false);
            req.send(null);
            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    if(req.status == 200) {
                        alert(req.responseText);
                    }
                }
            }
        }
ниже, в html: 
<input type="button" value="Запустить TRACE" onclick="trace_request()"/>
trace.php состоит из единственной строчки "<php echo 1; ?>"
----
Запускаю и получаю в файрбаге:
	
	| 
		 Код: 
	 | 
	NS_ERROR_ILLEGAL_VALUE: Illegal value
req.open('TRACE', 'trace.php', false); | 
	
----
Я указывал и 'trace.php', и '', и trace.php с полным путем к скрипту. Результат един.
Что я делаю не так?