AJAX传参,360正常,IE,chrome接收到的参数没值

/ 0评 / 2

客服端发送到服务器代码

<a value="<?php echo row_Recordset_task['test02'];?>" onclick="showUser(this.value)"><?php echorow_Recordset_task['test02'];?></a>

<div id="txtHint"></div>

JS处理

var xmlHttp

function showUser(str)

{

xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)

{

alert ("Browser does not support HTTP Request")

return

}

var url="getuser.php"

url=url+"?q="+str

url=url+"&sid="+Math.random()

xmlHttp.onreadystatechange=stateChanged

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

function stateChanged()

{

if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

{

document.getElementById("txtHint").innerHTML=xmlHttp.responseText

}

}

function GetXmlHttpObject()

{

var xmlHttp=null;

try

{

// Firefox, Opera 8.0+, Safari

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

//Internet Explorer

try

{

xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

}

catch (e)

{

xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

}

}

return xmlHttp;

}

PHP服务端接受参数

q=_GET["q"];

这个值在360浏览器中正常,在IE和谷歌浏览器中 undefined,结果是是

GET getuser.php?q=undefined&sid=0.2304172266740352

200 OK

129ms

ParamsHeadersResponseHTML

q    undefined

sid    0.2304172266740352
在JS中alert出str依旧是undefined,说明原因是客户端中没有将参数传入 showUser(str) 中,应该怎么写? 参数的值是row_Recordset_task['test02']

 

经过多次测试,问题解决了,客户端中代码改为

<a onclick="showUser('<?php echorow_Recordset_task['test02'];?>')"><?php echo $row_Recordset_task['test02']; ?></a>
但是为什么之前在360浏览器中传参正常,而在IE ,chrome下不行呢?继续需找答案。。