2015-10-25 3 views
-1

Я работаю над проектом, в котором мне нужно получить данные с php-страницы и отобразить их на сервере.XMLHttpRequest асинхронный не работает xmlhttp.status == 0

 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

Остановлен политикой того же происхождения? – adeneo

+0

@@ adeneo .. я не получил вас –

+0

http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy – adeneo

ответ

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. Нет Заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе . Origin 'http://stackoverflow.com' поэтому не допускается доступ.

Существует большие ресурсы на это позволяет на сервере, если вы хотите использовать CORS в http://enable-cors.org/server.html

заголовке Access-Control-Allow-Origin: * должен быть отправлено обратно в ответ.

Это может быть так же просто, как добавление header("Access-Control-Allow-Origin: *"); в начало этой страницы PHP.

Смежные вопросы