Я сделал небольшой плагин JavaScript, который можно использовать таким образом, чтобы на моей веб-странице, доступной по адресу http://my_server/index.html
<div id="foo"></div>
<script type="text/javascript" src="http://my_server/myPlugin.js"></script>
<script type="text/javascript">
myPlugin.init();
</script>
myPlugin.js
, выполнял ajax-вызовы http://my_server/query?foo=bar
и добавлял больше элементоввыше страницы и работает как шарм.
Теперь я хочу сделать этот плагин доступным для других.Представьте, что пользователь хочет реализовать его на веб-странице в http://her_server/index.html
За исключением того, что теперь он получает ошибку
XMLHttpRequest cannot load http://my_server/query?foo=bar.
Origin http://her_server/index.html is not allowed by
Access-Control-Allow-Origin.
Дополнительная складка.На данный момент у меня плагин размещен на http://my_server/myPlugin.js
(да, я хочу, чтобы это был плагин на стороне сервера), а сервер запросов - тот же http://my_server/query?foo=bar
.Однако в будущем они могут быть разными серверами.Например, плагин на http://my_plugin_server/myPlugin.js
и сервер запросов на http://my_query_server/query?foo=bar
.
Наконец, все это должно быть сделано без помощи jQuery или какой-либо другой библиотеки.Мой код AJAX
"getData": function (q) {
var uri = "http://my_server/query?foo=" + q;
var req = new XMLHttpRequest();
req.onreadystatechange = handler;
req.open("GET", uri, true);
req.send();
function handler(evt) {
if (req.readyState == 4 && req.status == 200) {
var json = eval('('+ req.responseText +')');
.. do something with json ..
}
}
}