2015-02-25 4 views
0

Я разрабатываю небольшой гаджет для нашей интрасети, и у меня есть небольшой php-файл на нашем сервере только для первого теста. Теперь все работает, если я использую GET-запрос, но я бы хотел использовать POST, чтобы не иметь всех данных в URL-адресе. К сожалению, я не могу получить данные по запросу POST.Windows 7 gadget, http req. GET vz. POST

Рабочий раствор с ГЭТ:

function ajax_getData() { 
    var error = false; 
    ajax = new ActiveXObject("Msxml2.XMLHTTP"); 
    ajax.open("GET", "http://server.com/index.php" + "?update&login=" + g_LOGIN + "&pass=" + g_PASS, true); 
    ajax.onreadystatechange = function() { 
     if (ajax.readyState === 4) { 
     if (ajax.status === 200) { 
      try {  
      $('#div0').html(ajax.responseText); 
      // do something  
      } catch (e) { 
      error = true; 
      } 
     } else { 
      error = true; 
     } 
     } else { 
     }  
     if (error) {  
     // handle error 
     } 
    }; 
    ajax.send(null); 
    } 

index.php

echo(var_dump($_POST)); 

Теперь моя не работает решение POST:

function ajax_getData() { 
    var error = false; 
    ajax = new ActiveXObject("Msxml2.XMLHTTP"); 
    ajax.open("POST", "http://server.com/index.php", false); 
    //ajax.open("POST", "http://server.com/index.php", true); 
    ajax.send("update&login=" + g_LOGIN + "&pass=" + g_PASS); 
    ajax.onreadystatechange = function() { 
     if (ajax.readyState === 4) { 
     if (ajax.status === 200) { 
      try {  
      $('#div0').html(ajax.responseText); 
      // do something  
      } catch (e) { 
      error = true; 
      } 
     } else { 
      error = true; 
     } 
     } else { 
     }  
     if (error) {  
     // handle error 
     } 
    }; 
    ajax.send(null); 
    } 

В решении случае POST я всегда получаю от индекса .php только 'Массив (0)'.

ответ

0

Что касается использования нового XMLHttpRequest() вместо нового объекта ActiveXObject ("Msxml2.XMLHTTP");

От http://www.w3schools.com/ajax/ajax_xmlhttprequest_create.asp:

Всех современных браузеров (IE7 +, Firefox, Chrome, Safari и Opera) имеет встроенный XMLHttpRequest объекта.

Синтаксис для создания объекта XMLHttpRequest:

variable=new XMLHttpRequest(); 

Старые версии Internet Explorer (IE5 и IE6) использует объект ActiveX:

variable=new ActiveXObject("Microsoft.XMLHTTP"); 
+0

Будет ли он работать также для гаджетов? Потому что я обнаружил, что некоторая конструкция JavaScript/jQuary плохо работает в гаджетах. – Lodhart