Я пытаюсь использовать Google GeoCoding API в Dynamics CRM 2011, и у меня возникают проблемы. Я написал следующую функцию JavaScript:
function geocodeXML()
{
var mDataPath = "http://maps.googleapis.com/maps/api/geocode/xml?address=WV1+1UL&sensor=false";
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
alert(1);
xmlDoc.load(mDataPath);
alert(2);
var theLat = xmlDoc.getElementsByTagName("lat")[0].childNodes[0].nodeValue;
var theLng = xmlDoc.getElementsByTagName("lng")[0].childNodes[0].nodeValue;
alert(theLat + ", " + theLng);
}
Я запустил это локально на своем компьютере, и он отлично работает - он выполняет код и дает мне окно предупреждения с широтой и долготой. Однако, как только я включаю его в CRM, он отказывается запускаться. Я добавил окна предупреждений, как указано выше, и это строка между двумя предупреждениями (xmlDoc.load(mDataPath);), которая вызывает проблему. Я получаю окно предупреждения с «1», а затем больше ничего. Я попытался включить код в функцию CRM (которая по какой-то причине выдает мне ошибку «Отказано в доступе»), и я попытался обернуть его в HTML и включить в качестве iframe.
Я видел, что этот API возвращает тег с именем «Статус», который должен давать такие ответы, как «ОК», «ZERO_RESULTS», «OVER_QUERY_LIMIT», «INVALID_REQUEST» и т. д., поэтому я знаю, что это не проблема с квотами или синтаксисом моего запроса. - как будто API не может быть достигнуто с сервера по этому адресу. Как я уже сказал, локальный запуск кода работает нормально, и я получаю ответ от API (со статусом «ОК»), но как только он попадает в CRM, он ничего не возвращает.
Я действительно не понимаю, что может быть причиной этого, и я был бы признателен за любую помощь, которая может быть предложена.
Спасибо.