我正在进行Ajax调用。现在我需要对它进行参数化,因为服务器上的所有不同脚本都可以使用相同的Ajax。
我需要
xmlhttp.open("GET","/ajaxrun?run=login_build",true);
在Ajax中这样做的方法是什么?
我想
<button onclick='loadXMLDoc("login_build")' type='button'>
然后function loadXMLDoc(script, function()
和xmlhttp.open("GET","/ajaxrun?run="+script,true);
,最后document.getElementById(script).innerHTML=xmlhttp.responseText;
但它没有做任何事情
我的html
<script type='text/javascript'>
//<![CDATA[
function loadXMLDoc()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
document.getElementById("run").innerHTML=xmlhttp.readyState;
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("run").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/ajaxrun?run=login_build",true);
xmlhttp.send();
}
//]]>
</script>
</head>
<body>
<h1>Available test suits</h1>
<br/><br/>
<table>
<tr>
<td>
<a href='run?run=login_build'>login_build</a>
</td>
<td>
<button onclick='loadXMLDoc()' type='button'>
run
</button>
</td>
<td>
<div id='run'>script results</div>
</td>
</tr>
<tr>
<td>
<a href='run?run=login_cycle_build'>login_cycle_build</a>
</td>
<td>
<button onclick='loadXMLDoc()' type='button'>
run
</button>
</td>
<td>
<div id='run'>script results</div>
</td>
</tr>
答案 0 :(得分:1)
jQuery是为这类工作而制作的。通常,您不希望将所有样板放在顶部以创建XHR对象。
具体来说,我喜欢传递对象文字来使这种类型的通用代码成为可能:
function generic(params) {
if (params.div && params.div instanceof Array && params.div.size() > 0) {
//multiple divs handling goes here
}
ajax(params.url, params.params);
}
generic({
divs: ['div1','div2'],
url: 'http://google.com',
params: {
param1:'hello',
param2:'hi'
}
})
答案 1 :(得分:1)
只需通过function loadXMLDoc(what_to_run)
<script type='text/javascript'>
//<![CDATA[
function loadXMLDoc(what_to_run)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
document.getElementById(what_to_run).innerHTML="<BLINK> processing ...</BLINK>"
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(what_to_run).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","/ajaxrun?run="+what_to_run,true);
xmlhttp.send();
}
//]]>
和<BODY>
<td>
<button onclick='loadXMLDoc("login_build")' type='button'>
run
</button>
</td>
<td>
<div id='login_build'>script results</div>
</td>