javascript — $ .getJSON, используемый виджетом рабочего стола, не запрашивает URL из браузера

Я разрабатываю виджет рабочего стола (в Windows 7). Я создал API (используя PHP), из которого виджет должен запрашивать данные. API представлен в формате JSON, и, набрав URL в браузере, я получаю необходимые данные, которые

{"a": "b"}

Я также проверил JSON API в http://jsonlint.com который показывает, что JSON является правильным.

Javascript-код, который я использую для получения JSON по URL-адресу, следующий:

$.getJSON(url, function(data) {
... printings ...
});

но я не получаю никаких результатов (в то время как URL показывает правильные результаты при его наборе). Открывая вкладку «Сеть», я вижу, что URL даже не запрашивается! Запрос к серверу ничего не возвращает, как будто я не запрашивал URL.

Однако, когда я набираю другой URL (не созданный мной, а из моей компании, использующей Python), виджет получает данные. Я полагаю, что с моим API что-то не так, но я не могу понять, что именно. В PHP-коде создания API у меня есть

<?php
....
$str = 'b';
....
$results = array();
$results['a'] = $str;
$encoded = json_encode($results);
echo $encoded;
return $encoded;
?>

и я получаю JSON, который я показываю выше. Есть идеи?

3

Решение

должно быть, очевидно, что-то не так с частью JavaScript. и я не знаю, что вы подразумеваете под Виджет рабочего стола.
Ваш Javascript не выводит ничего из вашего ответа JSON. давайте изменим это печатая data.a, которая должна быть переменной вашего ответа:

$.getJSON(url, function(data) {
output+= "<p> my JSON response: " + data.a + " </p>";
document.getElementById('demo').innerHTML = output;
//whenDone (output);
});

честно говоря, я не понимаю, чего вы пытаетесь достичь whenDone(output), это функция написана вами?
ты понимаешь что $.getJSON() является функцией jQuery, поэтому убедитесь, что вы включили jQuery в свой код. а также убедитесь, что ваш скрипт находится в <script></script> теги.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]