本帖最后由 stneo1990 于 2013-01-03 16:51:58 编辑

解决方案 »

  1.   

    php需要搭建服务器访问,你是直接双击运行或者直接拖拽运行的吧。。这样找不到问价就会报错,并且你先判断的是xmlhttprequest的支持,ie本地测试使用xmlhttprequest对象创建时也会报错。IE7,IE8浏览器创建XMLHTTpRequest请求本地资源出现access is denied拒绝访问
      

  2.   


    根据文章中说的,我关闭了XMLHTTP支持,但是我现在onreadystatechange事件好像没触发,我改成这样也不行 function check(){
    var obj=create_ajax();
    obj.open("get","ajax_do.php",true);
    obj.send(null);
    obj.onreadystatechange=function(){
    alert("ok");
    }
    }
    是什么原因呢?现在不报错了。
      

  3.   

    跨域就是a.com发送的ajax只能请求a.com的页面,不能请求b.com的页面,可以使用jsonp或者设置Access-Control-Allow-Origin响应头允许哪些域名可以跨域请求ajax_do.php这个页面存在没?不存在本地测试也会报错的,搭建服务器的话会出现404状态
      

  4.   


    存在这么一个页面,就在同一个文件夹里,现在是没有报错,但是alert没弹出来
      

  5.   

    function check(){
        var obj=create_ajax();
        obj.open("get","ajax_do.php",true);
    //放这里,IE放后面状态已经转换完了才加上onreadystatechange事件。。
        obj.onreadystatechange=function(){
            alert("ok");
        }
        obj.send(null);
    }
      

  6.   

    没有触发onreadystatechange方法。
      

  7.   


    现在可以触发onreadystatechange事件,并且readyState==4条件也成立了,我让它发送请求到了一个php页面,但是为什么最后弹出的responseText却是整个PHP的代码?PHP代码:<?php
    $name=isset($_GET['name'])?$_GET['name']:"";
    if($name!=""){
    if($name=="admin"){
    echo "aaa";
    die();
    }else{
    echo "bbb";
    die();
    }
    }else{
    echo "ccc";
    die();
    }
    ?>
    AJAX代码:<body>
    <script src="ajax_a.js" type="text/javascript"></script>
    <script>
    function check(){
    var obj=create_ajax();
    obj.open("get","ajax_do.php?name=admin",true);
    obj.onreadystatechange=function(){
    var state=obj.readyState;
    if(state==4){
    alert(obj.responseText);
    }
    }
    obj.send(null);
    }
    </script> username:<input type="text" name="username" value="" onblur="check();" />
    </body>
      

  8.   

    最关键的原因是我的AJAX创建方法有问题..这么写就没问题了:try{
    xmlHttp=new XMLHttpRequest();
    }catch(e){
    try{
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
      

  9.   

    function create_ajax() {
    var xmlHttp = null;
    try {
    xmlHttp = new XMLHttpRequest();
    } catch (e) {
    try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    } return xmlHttp;
    }
    staticActivity1.trigger3Click = function(event) {
    debugger;
    var obj = create_ajax();
    obj.open("GET", "http://mail.domain.com:8080/webmail/api/addUser.php?adminname=admin&adminpass=8dfed624c7b16700293a40e12e50f4ee&[email protected]&password=3c60fe19df8b6f367c5f18deedc4e2be&fullname=name223&mailquota=100&filequota=50", true);
    debugger;
    obj.onreadystatechange = function() {

    var state = obj.readyState;
    if (state == 4) {
    alert(obj.responseText);
    }
    };
    obj.send(null);
    };总是提示 "拒绝访问"
    我如果直接把url地址放在IE地址栏中可以直接运行!