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 に含めるとすぐに実行を拒否します。上記のように警告ボックスを追加しましたが、2 つの警告の間の行 (xmlDoc.load(mDataPath);) が問題を引き起こしています。「1」が入った警告ボックスが表示され、それ以外は何も表示されません。CRM関数にコードを含めようとしましたが(何らかの理由で「アクセスが拒否されました」というエラーが表示されます)、HTMLでラップしてiframeとして含めようとしました。
この API が「ステータス」というタグを返し、「OK」、「ZERO_RESULTS」、「OVER_QUERY_LIMIT」、「INVALID_REQUEST」などの応答を返すことがわかったので、クォータやリクエストの構文の問題ではないことがわかりました- そのアドレスのサーバーから API に到達できないかのようです。私が言ったように、コードをローカルで実行すると問題なく動作し、API から (「OK」のステータスで) 応答を受け取りますが、CRM に入るとすぐに何も返されません。
私はこれを引き起こしている可能性があることについて本当に途方に暮れており、提供できる助けをいただければ幸いです.
ありがとう。