我正在尝试在 Dynamics CRM 2011 中使用 Google 的 GeoCoding API,但遇到了问题。我编写了以下 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 返回一个名为“Status”的标签,它应该给出“OK”、“ZERO_RESULTS”、“OVER_QUERY_LIMIT”、“INVALID_REQUEST”等响应,所以我知道这不是配额或我请求的语法的问题- 就好像无法从该地址的服务器访问 API。正如我所说,在本地运行代码工作正常,我从 API 得到响应(状态为“OK”),但是一旦它在 CRM 中,它什么也不返回。
我真的不知道是什么导致了这种情况,我会很感激可以提供的任何帮助。
谢谢。