Нет причин, по которым он не должен работать в IE7 (даже в IE6).
Я проверил (и несколько изменил) ваш код:
var ajaxURL = "/echo/json/";
var fireAjax = new Request.JSON({
url: ajaxURL,
method:'POST',
data: {
json: JSON.encode({
opt1: 'option 1',
opt2: 'option 2'
})
},
onSuccess:function(resultjson){
if(resultjson.length!=0){
var elSelect = new Element('option',{'html':'First component', 'value':'All' }).injectInside($('vehicletype'));
Object.each(resultjson,function(value,key){
new Element('option',{'value':key,'html':value}).inject($('vehicletype'));
//sschecker[0].registerAnotherElement($('vehicletype'));
});
}
}
}).send();
Я изменил метод на POST и добавил данные ... просто чтобы иметь возможность проверить его в jsfiddle http://jsfiddle.net/F7G9Y/2/.. он работает на IE7 (не имеет IE6 sry)
по моему мнению (и моему опыту), это обычно происходит из-за неправильно сформированного JSON, в большинстве случаев из-за дополнительной комы. Итак, строки json, такие как:
{
'foo':'Foo',
'bar':'Bar', //<-extra coma here
}
будет хорошо в Firefox, Chrome, но не в IE
Надеюсь, это поможет