0

这是我在 ajax 中的第一个代码......请任何人都可以帮助我...... readySTate 和 status 属性永远不会成为真的......它显示 xhrobj.readyState=1 和 xhrobj.status=0 ..??

<html>
<head>
<title>MISCELLANEOUS QUESTION NO.1</title>
<script language="javascript">

var xhrobj=false;

if(window.XMLHttpRequest)
    xhrobj=new XMLHttpRequest();
else if(window.ActiveXObject)
    xhrobj=new ActiveXObject("Microsoft.XMLHttp");

function change1(str)
{
    if(xhrobj)
    {
        var obj=document.getElementById('span1');

        xhrobj.open("GET",str);

        xhrobj.onreadystatechange=function()
        {
            if(xhrobj.readyState==4&&xhrobj.status==200)
            {
                var str1="You Entered...."+str;
                obj.innerHTML=xhrobj.responseText;
            }
        }

        var str1="You Entered...."+str;

        alert(str1);
        alert(xhrobj.readyState);
        alert(xhrobj.status);
        alert(xhrobj.onreadystatechange);
        xhrobj.send(null);
    }
}
</script>
</head>

<body>

<form>
<input type="text" id="t1" placeholder="Enter Text...">
<input type="button" onclick="change1(t1.value)" value="FETCH DETAILS OF TEXTBOX">
<br>
</form>

<div id="span1">You Entered....</div>

</body>
</html>

请帮帮我..

4

1 回答 1

0

您必须修复xhrobj.open("GET",str);open 方法的第二个参数,这里是str,是您要从中读取数据的 URL,它无法从任何地方读取数据,它应该以您当前所在的域开头页面有,除非您Access-Control-Allow-Origin: *在服务器响应标头中添加标头,

我刚刚用有效的网址更改了您的确切代码,它完美地工作。查看您的演示

顺便说一句,我在您的评论中阅读了一些关于在 send 方法中传递 null 参数的讨论,当您创建 XMLHttpRequest 时,您必须发送一些东西,而当您的 http 方法是时,GET您必须传递 null 因为它是 Http Get,尽管在某些浏览器中您可以只调用send()方法而不将 null 作为参数传递,但传递 null 将保证您的代码适用于所有浏览器。

于 2013-12-22T05:21:40.213 回答