Вы должны установить нестандартный параметр, чтобы заставить работать API SO.Вместо обычного callback
вам нужно передать параметр jsonp
.
Кроме того, вы не можете сделать POST
с JSONP.
$.ajax({
type: 'GET',
url: 'http://api.stackoverflow.com/1.1/stats',
dataType: 'jsonp',
success: function() { console.log('Success!'); },
error: function() { console.log('Uh Oh!'); },
jsonp: 'jsonp'
});
не возможно сделать междоменный AJAX, используя обычный XMLHTTPRequest.Это по соображениям безопасности (это называется политикой того же происхождения).
Существует обходной путь.На теги script
данное ограничение не распространяется.Это означает, что вы можете вставить тег script
в документ, который вызывает URL.Если вы определяете глобально доступную функцию в своем скрипте и сообщаете удаленному серверу, как называется эта функция, сервер может передавать код, который упаковывает данные, которые будут отправлены при вызове этой функции.
Трудностьбыло здесь с API-интерфейсом StackOverflow.Традиционно вы используете аргумент callback
в своем запросе, чтобы сообщить серверу, как называется ваша функция.Однако API StackOverflow просит использовать вместо этого параметр jsonp
.