Mojarra'nın x-content-güvenlik politikasını kullanmak için yarattığı satır içi javascript'ten kurtulmaya çalışıyorum. Satır içi komut dosyasını devre dışı bırakan bir başlık.mojarra.ab (bu, evt, 'action', false, false, false) çağrılarını yönetemezsiniz;
Bunu yapmak için jsfajax adlı bir düğmeye bir sınıf ekledim ve temel olarak bu sınıfı kullanan öğeye onclickevent bir dinleyici ekliyorum. Sonra o olay dinleyicisinde mojarra.ab'i arıyorum. Ancak kaynak parametresi boş ve bence bu yüzden fasulyemdeki yönteme ulaşamıyorum.
HTTP isteği FORM VERİLERİ:
j_idt240:j_idt240
javax.faces.ViewState:-xxxxxxxxxxxxxx3:xxxxxxxxxxxx7022321
javax.faces.source:
javax.faces.partial.event:click
javax.faces.partial.execute:j_idt240:j_idt241
javax.faces.behavior.event:action
javax.faces.partial.ajax:true
<h:commandButton styleClass="jsfajax" value="go" action="#{test.sayHi}">
JS:
var es = doc.getElementsByClassName('jsfajax');
for(var i = 0; i < es.length; i++){
myjsf(i, es);
}
});
function myjsf(i , es){
var e = es[i];
e.onclick = function(evt){
log(this); // outputs the button so I don't understand + jsf.ajax.request doesn't throw error
mojarra.ab(this,evt,'action',0,0);
return false;
}
}
Yani istek gönderilir ama asla eylem yöntemini ulaşır.
Ancak bunu yapar (ve kaynak btn olan): İsteğe sonunda
<h:commandButton value="go2" action="#{test.sayHi}">
<f:ajax/>
</h:commandButton>