Java 为什么使用onclick从commandlink调用Ajax函数XMLHttpRequest不';不行?
我的问题是当我调用某个函数而不是在一个确定的div中呈现时,没有发送我的请求。 这是我的职责Java 为什么使用onclick从commandlink调用Ajax函数XMLHttpRequest不';不行?,java,jsf,xmlhttprequest,commandlink,Java,Jsf,Xmlhttprequest,Commandlink,我的问题是当我调用某个函数而不是在一个确定的div中呈现时,没有发送我的请求。 这是我的职责 <script type="text/javascript"> //<![CDATA[ function ajaxFunction() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); return xmlHttp; } catch (e) { // Internet Ex
<script type="text/javascript">
//<![CDATA[
function ajaxFunction() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
return xmlHttp;
} catch (e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
return xmlHttp;
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
} catch (e) {
alert("Tu navegador no soporta AJAX!");
return false;
}}}
}
function CargarDatos(_pagina,capa) {
var ajax;
ajax = ajaxFunction();
ajax.open("POST", _pagina, true);
ajax.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
ajax.onreadystatechange = function()
{
if (ajax.readyState==1){
document.getElementById(capa).innerHTML = " Aguarde por favor...";
}
if (ajax.readyState == 4)
{
document.getElementById(capa).innerHTML =
ajax.responseText;
}}
ajax.send();
}
//
这是我调用这个函数的地方
<li><h:commandLink action="#{personal.cargarEvento}" onclick="CargarDatos('pages/Politica/nacional/inicio.html','content'); " value="Nacional" >
如果我使用这一行,渲染效果会很好
<li><h:commandLink action="#{personal.cargarEvento}" onclick="mojarra.jsfcljs (CargarDatos('pages/Politica/nacional/inicio.html','content')); " value="Nacional" >
但是生成一个JavaScript错误,不调用MyBean
目标是单击某个元素在div中呈现另一个页面,同时在一个bean中执行某个方法
怎么了
如何使其工作?您混合了一些概念,导致代码毫无意义(您不能在一次单击中同时执行同步和异步请求;请注意,这不是JSF限制,它只是基本的HTML/JS)。请澄清具体的功能要求,以便更好地理解。究竟为什么需要调用action方法?它到底在做什么?为什么您需要在上从JSF外部发送ajax请求?为什么不使用JSF目标的ajax标记,比如JSF 2.x的
,或者JSF 1.x的组件库,比如Ajax4jsf?@BalusC Thx,我理解您的观点,在这句话“ajax.open(“POST”),参数true的意思是异步的,但是commandlink在一个线程中隐式调用两个请求。基本上,这个函数在我的主页的一个div上加载一个页面。这就是我需要做的。