XMLHttpRequest异步不起作用xmlhttp.status == 0

时间:2015-10-25 14:56:27

标签: javascript php

我正在开发一个项目,我需要从php页面获取数据并将其显示在服务器上。

     var xmlhttp;
                     var jsonResponse="";
                    window.onload=function()
                    { 
                        xmlhttp = new XMLHttpRequest();
                        xmlhttp.open("GET","http://www.ilexsquare.com/EC/menu.php",true);
                        xmlhttp.send();
                        xmlhttp.onreadystatechange=dataReturn;
                    }
                    function dataReturn()
                    {

                        if(xmlhttp.readyState== 4 && xmlhttp.status==200)
                        {
                             jsonResponse = xmlhttp.responseText;
                           getData();
                        }

                    }
                    function getData()
                    {                 
                    json = jsonResponse;

    console.log(json);
    var jsobject = JSON.parse(json);
    console.log(jsobject);
       console.log(jsobject.products.length);
       var html="";
    for(var i = 0; i < jsobject.products.length; i++){ 
 html += '<a class="submenu-item" href="http://www.ilexsquare.com/EC/productpage/index-left1.html?id=' + jsobject.products[i].menuid + '" >'; 
        html += '<i class="fa fa-angle-right"></i><em>  ' + jsobject.products[i].name;     
        html += '</em><i class="fa fa-circle"></i></a>';

    }
          $("#submenu").html(html);
          $("#count").html(jsobject.products.length);
         jsonString = JSON.stringify(obj);
                    }

我的php页面在哪里以json格式返回数据。这个xmlhttp.status总是返回0。我不知道是什么问题..请帮忙

1 个答案:

答案 0 :(得分:2)

这与跨原产地政策有关。

请考虑以下事项:

xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET","http://www.ilexsquare.com/EC/menu.php",true);
xmlhttp.send();
  

XMLHttpRequest无法加载http://www.ilexsquare.com/EC/menu.php。没有   &#39;访问控制允许来源&#39;标题出现在请求的上   资源。起源&#39; http://stackoverflow.com&#39;因此是不允许的   访问。

如果您想在http://enable-cors.org/server.html使用CORS,那么在服务器上启用此功能有很多资源

标题Access-Control-Allow-Origin: *需要作为回复发回。

这可以简单到将header("Access-Control-Allow-Origin: *");添加到该PHP页面的顶部。