ajax请求IE可以获取响应的值。火狐为什么不可以

时间:2022-11-26 11:15:33
ajax请求IE可以获取响应的值。火狐为什么不可以
我响应回来的是xml格式
然后IE返回的是节点都去掉了。
火狐为空。
不知道什么原因

8 个解决方案

#1


ajax 请求代码是如何写的?

#2




<script type="text/javascript">

function ajaxFunction()
 {
 var xmlHttp;
 
 try
    {
   // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
 catch (e)
    {

  // Internet Explorer
   try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
   catch (e)
      {

      try
         {
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
      catch (e)
         {
         alert("您的浏览器不支持AJAX!");
         return false;
         }
      }
    }

    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
         document.getElementById("showDiv").innerHTML = xmlHttp.responseText;
        }
      }
    var sUrl = "http://192.168.98.152/API/API.aspx?ktoken=isuf0d89aklwhj&&atoken=koj98ahk2nj3o&&api=tosee.general.modify_table_property&&tb=adseries&col=seriesname&modifyvalue=生活好啊&only=Id&onlyvalue=029sad82";
    xmlHttp.open("GET",sUrl,true);
    xmlHttp.send(null);

 }
</script>

<form name="myForm" runat="server">
    <input type="button" id="btnRequest" value="请求" onclick="ajaxFunction()" />
    <div id="showDiv"></div>
</form>

</body>
</html>

#3


document.getElementById("showDiv").innerHTML = xmlHttp.responseText;
这儿执行了吗

#4


给Firefox安装个firebug然后调试下JS看看!
https://addons.mozilla.org/zh-CN/firefox/addon/1843/

#5


引用 3 楼 youyou2404 的回复:
document.getElementById("showDiv").innerHTML = xmlHttp.responseText;
这儿执行了吗

IE执行了

#6


没看出有什么问题,最可能的话就是ff跨域导致出错
// var sUrl = "http://192.168.98.152/API/API.aspx?ktoken=isuf0d89aklwhj&&atoken=koj98ahk2nj3o&&api=tosee.general.modify_table_property&&tb=adseries&col=seriesname&modifyvalue=生活好啊&only=Id&onlyvalue=029sad82";
//改成不使用绝对url的请求试试
var sUrl = "/API/API.aspx?ktoken=isuf0d89aklwhj&&atoken=koj98ahk2nj3o&&api=tosee.general.modify_table_property&&tb=adseries&col=seriesname&modifyvalue=生活好啊&only=Id&onlyvalue=029sad82";



我响应回来的是xml格式
然后IE返回的是节点都去掉了。
-------
那是因为设置innerHTML时,你返回的是xml,会把xml节点当做html的dom对象,不显示<xml>这种信息了

#7


引用 6 楼 showbo 的回复:
没看出有什么问题,最可能的话就是ff跨域导致出错

JScript code
// var sUrl = "http://192.168.98.152/API/API.aspx?ktoken=isuf0d89aklwhj&amp;&amp;atoken=koj98ahk2nj3o&amp;&amp;api=tosee.general.modify_table_property&amp;&am……

是跨域请求。。
我在头部加了Access-Control-Allow-Origin这个属性为* 
这样就可以。
但据说很不安全。不知道有没更好的方式

#8


我也碰到一样的问题,但是加了Access-Control-Allow-Origin还是不行啊

为什么啊?

我得代码和楼主一样的。

#1


ajax 请求代码是如何写的?

#2




<script type="text/javascript">

function ajaxFunction()
 {
 var xmlHttp;
 
 try
    {
   // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
 catch (e)
    {

  // Internet Explorer
   try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
   catch (e)
      {

      try
         {
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
      catch (e)
         {
         alert("您的浏览器不支持AJAX!");
         return false;
         }
      }
    }

    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
         document.getElementById("showDiv").innerHTML = xmlHttp.responseText;
        }
      }
    var sUrl = "http://192.168.98.152/API/API.aspx?ktoken=isuf0d89aklwhj&&atoken=koj98ahk2nj3o&&api=tosee.general.modify_table_property&&tb=adseries&col=seriesname&modifyvalue=生活好啊&only=Id&onlyvalue=029sad82";
    xmlHttp.open("GET",sUrl,true);
    xmlHttp.send(null);

 }
</script>

<form name="myForm" runat="server">
    <input type="button" id="btnRequest" value="请求" onclick="ajaxFunction()" />
    <div id="showDiv"></div>
</form>

</body>
</html>

#3


document.getElementById("showDiv").innerHTML = xmlHttp.responseText;
这儿执行了吗

#4


给Firefox安装个firebug然后调试下JS看看!
https://addons.mozilla.org/zh-CN/firefox/addon/1843/

#5


引用 3 楼 youyou2404 的回复:
document.getElementById("showDiv").innerHTML = xmlHttp.responseText;
这儿执行了吗

IE执行了

#6


没看出有什么问题,最可能的话就是ff跨域导致出错
// var sUrl = "http://192.168.98.152/API/API.aspx?ktoken=isuf0d89aklwhj&&atoken=koj98ahk2nj3o&&api=tosee.general.modify_table_property&&tb=adseries&col=seriesname&modifyvalue=生活好啊&only=Id&onlyvalue=029sad82";
//改成不使用绝对url的请求试试
var sUrl = "/API/API.aspx?ktoken=isuf0d89aklwhj&&atoken=koj98ahk2nj3o&&api=tosee.general.modify_table_property&&tb=adseries&col=seriesname&modifyvalue=生活好啊&only=Id&onlyvalue=029sad82";



我响应回来的是xml格式
然后IE返回的是节点都去掉了。
-------
那是因为设置innerHTML时,你返回的是xml,会把xml节点当做html的dom对象,不显示<xml>这种信息了

#7


引用 6 楼 showbo 的回复:
没看出有什么问题,最可能的话就是ff跨域导致出错

JScript code
// var sUrl = "http://192.168.98.152/API/API.aspx?ktoken=isuf0d89aklwhj&amp;&amp;atoken=koj98ahk2nj3o&amp;&amp;api=tosee.general.modify_table_property&amp;&am……

是跨域请求。。
我在头部加了Access-Control-Allow-Origin这个属性为* 
这样就可以。
但据说很不安全。不知道有没更好的方式

#8


我也碰到一样的问题,但是加了Access-Control-Allow-Origin还是不行啊

为什么啊?

我得代码和楼主一样的。