0

jQueryを使用してDynamicsCRM2011からオンラインで情報を取得する必要があるWebページがあります。テストとして、テストシステムからすべてのアカウントを取得しようとしました。CRM製品内でテストしたコードを使用しましたが、機能します。

CRMドメイン上にない別のWebページで同じjQueryコードを実行しようとすると、機能しません(トランスポートなし)ので、クロスサイトスクリプティングを可能にするために$ .support.cors=true行を追加しました。これを実行すると、資格情報を要求するダイアログボックスがポップアップ表示されます。ただし、CRMのクレデンシャルをオンラインで入力すると、クレデンシャルが受け入れられません。3回試行した後、「許可されていません」というエラーが表示されます。

誰か助けてもらえますか?

コードは次のとおりです。

$(document).ready(function()
{

var request = "https://myorganisation.crm4.dynamics.com/XRMServices/2011/OrganizationData.svc/AccountSet";
$.support.cors = true;

$.ajax({
    type: "GET",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: request,
    async: false,
    beforeSend: 
        function (XMLHttpRequest) 
        { 
            XMLHttpRequest.setRequestHeader("Accept", "application/json"); 
        },
    success: 
        function (data, textStatus, XmlHttpRequest) 
        {
            var result = data.d.results[0];
            alert('Success');
            alert(result);
            alert(result.Name);
        },
    error: 
        function (XmlHttpRequest, textStatus, errorThrown) 
        { 
            alert(textStatus); 
            alert(errorThrown); 
        }
    });
});
4

2 に答える 2

1

oDataエンドポイントはクロスサイトリクエストをサポートしていません。これは、SilverlightまたはJavaScriptWebリソースのいずれかを使用したCRMアプリケーション内からの認証のみをサポートするように設計されています。

詳細については、このMSDNの記事を参照してください。

于 2012-06-20T20:29:36.600 に答える
0

しばらく前にそのようなものに出会ったと思いますが、関数は正常に機能しますが、リクエストは成功関数で変数の値をすぐに更新できません

そのためalways()、成功の代わりに関数を使用して、受け取った値で変数を更新します

新しいalways関数=リクエストが完了した後に起動する古い完了した関数

http://api.jquery.com/jQuery.ajax/

このページから:非推奨の通知:jqXHR.success()、jqXHR.error()、およびjqXHR.complete()コールバックは、jQuery1.8で非推奨になります。最終的な削除に備えてコードを準備するには、代わりにjqXHR.done()、jqXHR.fail()、およびjqXHR.always()を使用します。

于 2012-06-20T08:21:09.200 に答える