2017-02-20 18 views
0

Надеюсь, все хорошо, и я ценю, если вы можете помочь мне или перенаправить меня на аналогичный старый пост, потому что я не смог его найти.Чтение ответа JSON от REST API всегда возвращает пустой текст

Я пытаюсь инициировать запрос API REST, и сервер отправит ответ JSON. Обнаружен запрос, но я не могу прочитать вывод JSON. Статус всегда возвращает 0.

Вот мой код.


<script> 
function loadDoc() { 

    var xhttp = new XMLHttpRequest(); 
    xhttp.open("POST", "URL HERE", true); 
    xhttp.setRequestHeader("Content-type", "application/json")  
    xhttp.send(); 
    var response = JSON.parse(xhttp.responseText); 
    document.getElementById("demo").innerHTML = response.Result; 


} 
</script> 

Я хочу напечатать результат этого JSON в:

{ 
    Meta: { 
    Status: 'Success', 
    Debug: '' 
    }, 
    Result: { 
    Count: 2584, 
    Error: [], 
    Info: [], 
    Skipped: [], 
    DuplicateResponseCount: 0, 
    DuplicateError: null 
    } 
} 

Спасибо большое.

+0

Связанный: https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call ? rq = 1 –

+2

Вы делаете асинхронный запрос, поэтому ответа нет, когда ваш код пытается его получить. –

+0

Должен ли я перейти на: xhttp.open («POST», «URL SOERE», false)? – Asma

ответ

1

Как сказал Пабло. Вы используете асинхронный. Один из вариантов - метод get get или просто передать обратный вызов функции.

function _post(url, callback) { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.open("POST", url, true); 

    xhttp.onload = function() { 
    if (xhttp.status === 200) callback(xhttp.responseText); 
    else callback("error"); 
    }; 
    xhttp.send(); 

    return xhttp.responseText; 
} 

_post("url here", function callback(response) { 
    // you can access response in here. 
    console.log(response); 
}); 

На ваш PHP скрипт

<?php 
    header("Access-Control-Allow-Origin: *"); 
+0

Спасибо, Лара. Я пробовал код, но он не работал, и я получил сообщение об ошибке. Раньше я мог опубликовать данные, но получил пустой ответ, но теперь данные фактически не были опубликованы, хотя URL-адрес верен. – Asma

+0

@Asma вы получаете ошибку из-за состояния xhttp не 200. Возможно, его 404. Я использовал это для своего API. Попробуйте использовать функцию callback (xhttp.status) в функции onload. :) –

+0

Еще раз спасибо. Я попробовал, и он вернул «403» «Запрещено», так это значит, что сервер отклоняет мой запрос? – Asma

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

  • Нет связанных вопросов^_^