Лучше всего использовать JSONP.Проверьте:
http://api.jquery.com/jQuery.getJSON/
http://en.wikipedia.org/wiki/JSON
Если у вас есть сервер, предоставляющий такие данные, как:
http://my.server.com/somedata.json
{
'some': ['fancy', 'json' ],
'structure: 'here'
}
Вы превращаете это вJSONP, предоставив параметр обратного вызова в URL-адресе запроса - де-факто стандартное имя для него callback
.Затем на сервере вам нужно проверить этот параметр и обернуть свой результат в этот обратный вызов (фактически превратив его в javascript вместо json).
http://my.server.com/somedata.json?callback=receive_this
receive_this({
'some': ['fancy', 'json' ],
'structure: 'here'
});
(Для краткости, тип mime ответа для json долженбыть application/json
в то время как для jsonp это должно быть application/javascript
)
Клиент теперь (концептуально) загружает json следующим образом:
<script type="text/javascript">
var receive_this = function(json) {
// do some stuff with data here.
};
</script>
<script type="text/javascript" src="http://my.server.com/somedata.json?callback=receive_this"></script>
На практике вы используете что-то вроде jQuery длядинамически вставьте тег сценария запроса jsonp в DOM.По умолчанию jQuery вызывает параметр запроса обратного вызова callback
.
$.ajax({
url: 'http://my.server.com/somedata.json',
dataType: 'jsonp',
success: receive_this
});