Использование jQuery для чтения ошибок файла JSON в Google Chrome - PullRequest
0 голосов
/ 30 сентября 2011

У меня есть файл JSON:

http://dalexl.webs.com/products.json

Я пытаюсь прочитать его на своем сайте с помощью Javascript / jQuery:

$.getJSON("http://dalexl.webs.com/products.json")

(Да, я знаю, что это не завершено, в настоящее время я просто пытаюсь загрузить его, я еще не читал его)

Я пытался получить в своемкаталог собственных сайтов (я использую Dreamweaver локально на моем HD).

$.getJSON("json/products.json")

Проблема в том, что в Chrome (я не уверен в других браузерах), консоль выдает мне эту ошибку:

XMLHttpRequest cannot load <a href="http://dalexl.webs.com/products.json" rel="nofollow">http://dalexl.webs.com/products.json</a>. Origin null is not allowed by Access-Control-Allow-Origin.

или:

XMLHttpRequest cannot load json/products.json. Origin null is not allowed by Access-Control-Allow-Origin.


Сначала чтение о проблеме в Интернете показало, что Chrome думал, что веб-сайт пытается прочитать файлы на моем компьютере.Однако после перемещения файла в режиме онлайн проблема продолжает возникать.

У кого-нибудь есть решение этой проблемы?Если он не должен поддерживаться, почему jQuery имеет собственный способ сделать это?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 30 сентября 2011

вы пытаетесь открыть кросс-домен?См .:

http://en.wikipedia.org/wiki/Same_origin_policy

1 голос
/ 30 сентября 2011

Если только страница, на которой скрипт, выполняющий строку

$.getJSON("http://dalexl.webs.com/products.json")

, также находится на http://dalex1.webs.com, вы нарушаете политику Same Origin Policy , ограничение на чторесурсы, которые вы можете загрузить через XMLHttpRequest (например, "ajax").Для получения подробной информации см. Ссылку.

Ваши варианты обхода SOP:

Отдельно обратите внимание, что JSON вывозврат недействителен (пропущены запятые между свойствами), см. jsonlint.com и другие для инструментов проверки. Теперь вы исправили это.

1 голос
/ 30 сентября 2011

http://dalexl.webs.com/products.json не возвращает действительный json.Мне нравится использовать http://jsonviewer.stack.hu/ для тестирования (когда вы нажимаете кнопку «Просмотр», вы получаете ошибку).

У вас три пропущенных запятых:

После: «url»:"# 1"

После: "url": "# 2"

До: "Торты": {

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