Пользовательский XHR не возвращает JSON - PullRequest
1 голос
/ 01 ноября 2011

Я пишу небольшую утилиту для своего музея. Министерство культуры Дании имеет базу данных REGIN, где я могу получить доступ к различной информации о музейных экспонатах в формате JSON. Это кросс-домен, без обратного вызова. Теперь есть API для доступа к данным, и я выяснил, как получить доступ к элементам базы данных, чтобы я мог выбирать информацию о конкретных музейных предметах.

Вот моя проблема: эти элементы расположены в различных «списках просмотра» или «коллекциях», которые объединены в другом месте. Я должен иметь доступ к списку JSON всех «коллекций», связанных с моим музеем, который имеет идентификатор 229. URL-адрес https://www.kulturarv.dk/regin/dapi/ListView?&viewType=viewList&format=json&museumId=229 Когда я обычно обращаюсь к нему в браузере, конечно же, есть соответствующая информация о «видах» музеев в JSON.

</p> <pre><code>[ { "viewId" : "778","OprettetAfId" : "6813","OprettetDato" : "2011-06-20","name" : "Sølv test","keyword" : "test","text" : "Test af genstand for "skab 8"","museumId" : "229" }, { "viewId" : "779","OprettetAfId" : "6813","OprettetDato" : "2011-06-22","name" : "Rum 29 - Skab 3","keyword" : "Test, drikkekrus, porcelæn","text" : "Genstande til Bibliotekssalens mobil-udstilling, skab 3.","museumId" : "229" }, { "viewId" : "786","OprettetAfId" : "6813","OprettetDato" : "2011-09-02","name" : "genstand3skab3","keyword" : "til skab 3","text" : "Kærlighedsguden Amor","museumId" : "229" }, { "viewId" : "792","OprettetAfId" : "6813","OprettetDato" : "2011-10-10","name" : "Skab 3 Bibliotekssalen","keyword" : "Porcelæn","text" : "Skab 3","museumId" : "229" }, { "viewId" : "793","OprettetAfId" : "6813","OprettetDato" : "2011-10-13","name" : "genstand2skab3","keyword" : "til skab 3","text" : "Fugtbarhedsgudinden Ceres, skab 3","museumId" : "229" } ]

Теперь, по причинам, которые я не знаю, та же самая процедура, которую я использую для доступа к информации о конкретных предметах, не позволяет мне открыть вышеупомянутый URL. Вот мой код для доступа к вышеуказанному JSON, который ничего не возвращает:

</p> <pre><code>$(document).ready(function() { xmlhttp = new XSiteHttpRequest(); //a custom XHR... not sure why they decided to do it that way xmlhttp.open("GET","https://www.kulturarv.dk/regin/dapi/ListView?&viewType=viewList&format=json&museumId=229",true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { if (xmlhttp.status!=404) { alert("Works!"); } else { alert("Does not work!"); }; }; }; xmlhttp.send(null); });

Теперь я предполагаю, что, поскольку я не получаю оповещение («Работает!») ИЛИ оповещение («Не работает!»), Я делаю что-то не так.

Та же процедура работала с этим URL: https://www.kulturarv.dk/regin/dapi/ListView?viewType=objectContent&format=xml&objectType=Genstand&objectId=3911238

И этот код выдает соответствующее предупреждение:

</p> <pre><code>var objectId = 3911238; $(document).ready(function() { xmlhttp = new XSiteHttpRequest(); xmlhttp.open("GET","https://www.kulturarv.dk/regin/dapi/ListView?viewType=objectContent&format=json&objectType=Genstand&objectId=" + objectId,true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { if (xmlhttp.status!=404) { alert("Works!"); } else { alert("Does not work!"); }; }; }; xmlhttp.send(null); });

Я не вижу никакой разницы между ними, так что здесь может происходить?

Я запустил нерабочий код через Firefox, и консоль с ошибкой сказала: «неопределенный строковый литерал». Не уверен, что это значит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...