2017-01-03 3 views
0

現在、JavaScriptアプリケーションを開発しており、Dynamics CRM Web APIにアクセスしてCRMから情報を取得しようとしています。外部サイトからのDynamics CRM Web API(JavaScript)

私のアプリはAzure Appサービス(およびlocalhostでテスト)の中にホストされており、認証されたユーザーのみ(Microsoftによって)アクセス可能なので、ユーザーがアプリケーションを読み込もうとすると、AzurewebsitesはMicrosoftの一般的なOAUTHログインページ(​​)。

ログインが成功すると、ユーザーはjavascriptアプリケーションにリダイレクトされ、ドキュメントが準備できたら、ダイナミクスCRM Web APIを呼び出して(jQueryのajaxリクエストを介して)エンティティを取得したいと思います。 JSコンソールにエラーメッセージが表示され、次のことが可能にアクセスがすべてで、クライアント側からのAPIである、または私はそれを実行する必要があります。

XMLHttpRequest cannot load https://MYTENANTID.crm4.dynamics.com/api/data/v8.1/contacts. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://MYAPP.local' is therefore not allowed access. The response had HTTP status code 401. 

は、私は、これは同一生成元ポリシーのbacauseさを知って、質問がありますサーバ側?

+1

[この](https://msdn.microsoft.com/en-us/library/mt595799.aspx?f=255&MSPPError=-2147217396)SDKページは見たことがありますか? – Polshgiant

+0

ありがとう、私はこのADAL.jsチュートリアルのAngularバージョンしか見つけません。私は十分にグーグルではありませんでした。再度、感謝します! – RobbeR

答えて

0

お客様のエラーメッセージによると、私たちがクライアント側のアプリケーションから私たちのバックエンドサーバーにリクエストを呼び出すと、それは一般的なCORSの問題のようです。

通常、CORSをサポートするために、応答ヘッダーをバックエンドサーバーに追加します。また、ASP.NET Web APIでクロスオリジン要求を有効にする方法の詳細については、https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-apiを参照してください。

また、CRM 2016はCORS設定をサポートしています。詳細はhttps://msdn.microsoft.com/en-us/library/gg309589%28v=crm.8%29.aspx?f=255&MSPPError=-2147217396#bkmk_corsSupportを参照してください。

関連する問題