Как создать веб-сервис JSON rest в php без использования какой-либо библиотеки? - PullRequest
1 голос
/ 30 октября 2010

Я хочу создать hello world json rest webservice в test.php:

  <?php header("Content-type: application/json; charset=utf-8");


     $test[] = "hello";  
     $test[] = "world";  

    $json = json_encode($test);
    echo $json;    
  ?>

Но ничего не возвращается, когда я проверяю его с ajax ниже, почему?

<html>
<head>
<script>
function test()
{ 
    var xhr; 
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }

    xhr.onreadystatechange  = function()
    { 
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200) 
                  alert(xhr.responseText); 
              else 
                 alert("Error code " + xhr.status);
         }
    }; 

   xhr.open(GET, "test.php",  true); 
   xhr.send(null); 
} 
</script>
</head>

<body>
<script>
test();
</script>
 </body>
 </html> 

1 Ответ

1 голос
/ 30 октября 2010
  1. У вас есть пробелы до запуска вашего PHP-кода, поэтому вызов header приведет к ошибке
  2. Вы устанавливаете text/html Тип контента для данных JSON, он должен быть application/json
  3. Вы заменяете ссылку на элемент ввода в форме строкой, вы, вероятно, хотите установить вместо нее свойство .value. (В этом отношении, вы, вероятно, должны иметь к нему доступ как document.forms.id_of_form.elements.dyn.value для ясности) (хотя использование input для отображения результатов является довольно сомнительной практикой)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...