読者です 読者をやめる 読者になる 読者になる

locationオブジェクトを使ったサーバーURLの取得方法

フォーム内でサーバーURLを取得する場合、Xrm.Page.context.getClientUrl()が使用されますが、
リバースプロキシ経由と直接サーバー接続する2パターンで接続する場合など、
ドメイン名がそれぞれ異なるためXrm.Page.context.getClientUrl()が使用できないケースがあります。

その場合は、以下のようにwindow.locationオブジェクトを使ってURLを取得すれば良いです。

    var cURL = document.location.href;
    var domain = document.location.host;
    var jsHost = (document.location.protocol) + '//';
    var org = cURL.split('/')[3];
    var crmUrl = jsHost + domain + '/' + org;
    
    var ODataPath = crmUrl + "/XRMServices/2011/OrganizationData.svc/";
    
    //リバースプロキシ経由で接続する場合などは、例えば以下のようにgetClientUrl()は使えない
    //var ODataPath = Xrm.Page.context.getClientUrl() + "/XRMServices/2011/OrganizationData.svc/";