2013-12-05 2 views
1

Я пытался получить Json с этой страницы: http://ehv-design.nl/eindopdracht/api.php?method=complete (без json-файла). Можно ли это получить? I'v пытался получить его с этим кодом:Можно ли получить этот Json?

var url = 'http://ehv-design.nl/eindopdracht/api.php?method=complete'; 


$.getJSON(url, function(data){ 
    var name = data[name]; 
    $("#photoInfo").append("<p>"+name+"</p>"); 
}); 
+3

Нет, нет 'Access-Control-Allow-Origin' заголовок присутствует на запрошенный ресурс, так что вы не можете получить, что. – adeneo

+1

Когда у вас есть шанс, взгляните на мой ответ. Вы можете сделать это с помощью YQL. Это просто и не позволяет вам настроить собственный собственный серверный сервер, чтобы использовать объект JSON. Я только комментирую, потому что вы получаете много «нет» ответов. – iamjpg

ответ

7

Сервер не отправляет заголовки CORS (Access-Control-Allow-Origin), так нет, вы не можете получить и получить доступ к результату, если вы не используете оболочку на сервере, который извлекает пульт файл и делает его доступным локально.

Другой вариант - попросить владельца удаленной службы поддерживать JSONp. Затем вы можете использовать это для извлечения данных даже без заголовков CORS. Но CORS был бы намного более чистым (JSONP - это, в основном, скрипт межсайтового сайта, вы просто доверяете удаленному концу не выполнять вредоносный код).

-1

Сервер, на котором JSON не разрешает cross-origin resource sharing. Я попытался запустить код из jsfiddle.net. При попытке доступа к файлу, регистрируется следующее сообщение об ошибке:

XMLHttpRequest cannot load http://ehv-design.nl/eindopdracht/api.php?method=complete. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://fiddle.jshell.net' is therefore not allowed access. 

Для дальнейшего чтения, см this answer

3

Вы можете абсолютно с помощью YQL (Yahoo Query Language).

var query = 'http://ehv-design.nl/eindopdracht/api.php?method=complete' 
var url = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D%22' + encodeURIComponent(query) + '%22&format=json&callback=?' 

$.getJSON(url, function (res) { 
    console.log(res); 
}); 

I made a fiddle demo here.

+0

Я бы не хотел полагаться на внешнюю службу для этого. Зачем добавлять еще одну возможную ошибку? – ThiefMaster

+0

Пока я беспокоюсь, YQL существует уже много лет и является проверенным и надежным веб-сервисом, который принадлежит и поддерживается Yahoo. Вы не всегда можете получить JSONp из службы, и некоторые люди не могут откатить свой собственный прокси-сервер на стороне сервера. Он также спросил, возможно ли это, каково это, как я доказал. – iamjpg

+0

Это очень аккуратный подход! +1 для введения меня в YQL. –

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