1

Я работаю над асинхронной загрузкой (используя XMLHttpRequest .readystate & .responseText) содержимого таблицы продуктов при изменении разбивки на страницы или фильтра. Funtions Я написал работу отлично, но только на локальном. На стороне сервера apache/ngnix он возвращает неверный запрос. Пожалуйста помоги.Загрузка ~ 400 (неверный запрос). XmlHttpRequest работает на локальном, но не на стороне сервера

function loadContent(link) { 

    var http = createRequestObject(); 
    if(http) { 

     http.open('load', link); 
     http.onreadystatechange = function() { 

      if(http.readyState == 4) { 

       var div = document.createElement('div'); 
       div.innerHTML = http.responseText; 
       var all = div.getElementsByTagName('div'); 

       for (var i = 0, len = all.length; i < len; i++) { 

        if (all[i] && all[i].getAttribute('id') == 'to-ajax') { 

         var deep = all[i].getElementsByClassName('product-layout col-lg-4'); 
         $('.load').before(deep); 

        } 
       } 
      } 
     } 

     http.send(null); 

    } else { 

     document.location = link; 

    } 
} 

function createRequestObject() { 
    try { return new XMLHttpRequest() } 
    catch(e) { 
     try { return new ActiveXObject('Msxml2.XMLHTTP') } 
     catch(e) { 

      try { return new ActiveXObject('Microsoft.XMLHTTP') } 
      catch(e) { return null; } 
     } 
    } 
} 

предупреждение об ошибке относится к этой строке кода ~ } http.send(null);

кажется, что проблема заключается в .onreadystatechange функции, но не имеют ни малейшего представления о том, как проверить его, чтобы определить, что точный вопрос.

+0

Я попытался переписать funtion, чтобы избавиться от responseText (просто изменил responseText на responseXML), поскольку это казалось потенциальной причиной ошибки. Не помогло – cocostru

ответ

1

Первый аргумент open должен содержать строку, содержащую метод HTTP-запроса. "load" не является методом HTTP-запроса. Примеры включают "GET" и "POST". Недопустимый HTTP, скорее всего, заставляет ваш сервер реагировать с ошибкой «Плохой запрос».

+0

Решил это за минуту до ответа ур - и это на 100% прав! Большое спасибо! Будет upvote u, но имеет слишком низкую репутацию, просто зарегистрировался, извините. – cocostru

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