ajax问题? with activexobjects

时间:2009-04-20 13:18:55

标签: php ajax activex

我一直收到以下错误:

  

未捕获的异常:[Exception ...“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsIXMLHttpRequest.send]”nsresult:“0x80004005(NS_ERROR_FAILURE)”location:“JS frame :: http://site/cms/js/interface.js :: doAjaxCall ::第300行“数据:否]

  

未捕获的异常:[Exception ...“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsIXMLHttpRequest.send]”nsresult:“0x80004005(NS_ERROR_FAILURE)”location:“JS frame :: http://site/cms/js/interface.js :: doAjaxCall ::第300行“数据:否]

第0行

这是doAjaxCall

的功能
function doAjaxCall(cmd,params) {
  var postdata='cmd='+cmd+'&params='+params;

  var a=sajax_init_object();
  if (a) {
    a.open("POST","ajax_handler.php", false);
    a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    a.send(postdata);                      <====Line 300
      document.body.style.cursor="default";

    if(a.readyState == 4) {
      return a.responseText;
    } else {
      alert("We where unable to execute the ajax call.");
    }
  }

function sajax_init_object() {
    var A;
    try {
        A=new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            A=new ActiveXObject("Microsoft.XMLHTTP");
        } catch (oc) {
            A=null;
        }
    }
    if(!A && typeof XMLHttpRequest != "undefined")
        A=new XMLHttpRequest();
    if (!A)
        alert("Could not create connection object.");
    return A;
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

由于Javascript中的安全限制,无法通过XMLHttpRequest从远程域检索信息。 我想你需要一个代理人!

答案 1 :(得分:0)

这是由于MIME类型:application / x-www-form-urlencoded

它适用于某些浏览器。它不会在基于Gecko的浏览器(例如Firefox)中工作

详情请见:http://ajaxpatterns.org/Talk:XMLHttpRequest_Call