jQuery getJSON - ошибка с URL, пожалуйста, ПОМОГИТЕ - PullRequest
1 голос
/ 25 августа 2011

Я новичок в jQuery, и я пытался использовать getJSON, но у меня всегда возникает ошибка при использовании его с URL, тогда как он работал, когда я использовал его с текстовым файлом. Подскажите, пожалуйста, что не так с URL?

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$.getJSON("http://localhost/edoc?appname=eDRITS&prgname=JSON2",function(item){
     alert("success");
    $.each(item.users, function(i,user){
        content = '<p>' + user.name + ', ' + user.fname + '</p>';
        $(content).appendTo("#list");
    });
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); });
});
</script>

URL в коде - это вызов программы, которая возвращает данные JSON:

{"users": [{"usrid": "GABR90", "name": "ABRAMOVA", "fname": "Galina"}]}

Если я заменю URL-адрес текстовым файлом, который содержит данные JSON, это сработает:

$.getJSON("file.txt",function(item){...}

Ошибка, которую я получаю с URL - это просто отображение моей ".error () функции", у меня нет какого-либо конкретного сообщения об ошибке, и я не знаю, как использовать отладчик для просмотра HTTP-запроса браузера (это Firefox).

Так, как я могу использовать это с URL, пожалуйста?

Спасибо за вашу помощь

1 Ответ

2 голосов
/ 25 августа 2011

Вы обращаетесь к HTML-странице, используя file: /// и затем вызываете эту страницу http://localhost? Если это так, то вы попали в ограничение «того же происхождения».

Ваш браузер видит страницу как исходящую из файла: // url, и когда эта страница пытается подключиться к http://localhost,, который технически является другим доменом, и по соображениям безопасности браузер может (и обычно будет) заблокировать это общение. Когда вы вместо этого указываете на текстовый файл, он видит как HTML, так и файл из file: // и разрешает связь.

Вы должны загрузить страницу HTML на свой веб-сервер, чтобы вы могли получить доступ к странице, используя http://localhost/mypage.html или аналогичный URL.

...