Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX调用ASP页面来更新数据库记录在IE9中只工作一次_Ajax_Internet Explorer_Asp Classic - Fatal编程技术网

AJAX调用ASP页面来更新数据库记录在IE9中只工作一次

AJAX调用ASP页面来更新数据库记录在IE9中只工作一次,ajax,internet-explorer,asp-classic,Ajax,Internet Explorer,Asp Classic,在本论坛成员提出了几条有用的建议之后,我正在接近解决一个简单的问题。我对AJAX完全是个新手 有人能告诉我为什么这段代码在Firefox8中运行良好,但在IE9中却不行?它可以在IE中工作一次,但不能再次工作,除非我关闭浏览器并重新打开 <script language="javascript" type="text/javascript"> <!-- //Browser Support Code function ajaxFunction(){

在本论坛成员提出了几条有用的建议之后,我正在接近解决一个简单的问题。我对AJAX完全是个新手

有人能告诉我为什么这段代码在Firefox8中运行良好,但在IE9中却不行?它可以在IE中工作一次,但不能再次工作,除非我关闭浏览器并重新打开

<script language="javascript" type="text/javascript">
<!--
    //Browser Support Code
    function ajaxFunction(){
        var ajaxRequest;
        try {
            // Opera 8.0+, Firefox, Safari
            ajaxRequest = new XMLHttpRequest();
        } 
        catch(e) {
            // Internet Explorer Browsers
            try {
                ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch(e) {
                try {
                    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e){
                    // Something went wrong
                    alert("Your browser broke!");
                    return false;
                }
            }
        }

        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
            if (ajaxRequest.readyState == 4) {
            }
        }

        ajaxRequest.open("GET", "disp_processTEXT.asp", false);
        ajaxRequest.send(null);
    }
//-->
</script>

readystate保留为空,因为它是复制的代码,最初为div分配了一个值,但我只想在asp页面中运行数据库代码。这可能已经被删除了

要在asp页中运行的代码为

<%
    Set MyConn = Server.CreateObject("ADODB.Connection")
    MyConn.Open "dsn=xxx;uid=xxx;password=xxx;"
        SQLString = "UPDATE dbo_tbl_printing_tempstore SET front_has_text1 = 'YES', front_text = 'help' WHERE id = 106567"
        MyConn.Execute(SQLString)
    MyConn.Close
    Set MyConn = Nothing
%>

请帮帮我,因为这快把我逼疯了

非常感谢

切换到及其Ajax系统,因为它应该是跨浏览器兼容的开箱即用系统,并为您节省大量时间:

添加jQuery的引用:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

演示:

试试这个。除了一些Opera版本外,它在所有浏览器中都对我有效

function GetXmlHttpObject(handler)
{
     var objXmlHttp=null;
     if(navigator.userAgent.indexOf("MSIE")>=0)
     {
          var strName="Msxml2.XMLHTTP";
          if(navigator.appVersion.indexOf("MSIE 5.5")>=0)
          {
               strName="Microsoft.XMLHTTP";
          }
          try
          {
               objXmlHttp=new ActiveXObject(strName);
               objXmlHttp.onreadystatechange=handler;
               return objXmlHttp;
          }
          catch(e)
          {
               alert("Error. Scripting for ActiveX might be disabled");
               return;
          }
     }
     else //All other browsers
     {
          objXmlHttp=new XMLHttpRequest();
          objXmlHttp.onload=handler;
          objXmlHttp.onerror=handler;
          return objXmlHttp;
     }
}

var url= "http://www.example.com/";
xmlHttp=GetXmlHttpObject(stateChanged);
xmlHttp.open("GET", url , true);
xmlHttp.send(null);

谢谢你的回复。我会试试看,让你知道我进展如何。我尝试了这个,我在FF中工作得很好,但只有在IE9.akiller中第一次调用它时才工作(对不起,我已经习惯了论坛中的编辑)。我试过这个。我从一个文本区域的onblur=”“中调用它。它在FF8中工作正常,但在IE9中只工作一次。只有关闭并重新打开浏览器,它才能在IE9中再次工作。有什么想法吗?另外,当我在循环中运行的代码中留下success:alert时,你知道为什么吗?这可能是由于IE如何处理onblur事件(我不太了解)。您可以完全删除onblur属性,并将jQuery绑定到blur事件。看到我的变化上面。嗨,谢谢你的答复。我看看能不能把它用上。
$(document).ready(function() {
    $('#yourinput').on('blur', function(){        
        $.ajax({
          url: 'disp_processTEXT.asp',
          success: function(response) {
            alert('It worked');
          }
        });
    });
});
function GetXmlHttpObject(handler)
{
     var objXmlHttp=null;
     if(navigator.userAgent.indexOf("MSIE")>=0)
     {
          var strName="Msxml2.XMLHTTP";
          if(navigator.appVersion.indexOf("MSIE 5.5")>=0)
          {
               strName="Microsoft.XMLHTTP";
          }
          try
          {
               objXmlHttp=new ActiveXObject(strName);
               objXmlHttp.onreadystatechange=handler;
               return objXmlHttp;
          }
          catch(e)
          {
               alert("Error. Scripting for ActiveX might be disabled");
               return;
          }
     }
     else //All other browsers
     {
          objXmlHttp=new XMLHttpRequest();
          objXmlHttp.onload=handler;
          objXmlHttp.onerror=handler;
          return objXmlHttp;
     }
}

var url= "http://www.example.com/";
xmlHttp=GetXmlHttpObject(stateChanged);
xmlHttp.open("GET", url , true);
xmlHttp.send(null);