2

標準の jquery ajax 呼び出しを使用して、Web API サービスにアクセスできます。

$.ajax('http://service/method', {
contentType: 'application/json',
type: 'GET',
xhrFields: {
    withCredentials: true
  }
})

サーバー側では、webconfig ファイルは次のように構成されます。

 <customHeaders>
    <clear/>
    <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS" />
    <add name="Access-Control-Allow-Origin" value="http://localhost:1502" />
    <add name="Access-Control-Allow-Headers" value="Content-Type,X-Requested-With, Authorization" />
    <add name="Access-Control-Allow-Credentials" value="true" />
  </customHeaders>

今のところ、ポート 1502 で実行されているローカル Web サイトからサービスにアクセスしようとしています。

しかし、breeze を使用する場合、withCredential パラメーターの指定方法がわかりず、結果として 401 エラーが発生します。

4

2 に答える 2

4

Breezeの「ajaxアダプタ」を見てください。次のアプローチでは、すべての Breeze XHR リクエストに「withCredentials」を追加します。

// 現在のデフォルトの Breeze AJAX アダプタを取得します
var ajaxAdapter = Breeze.config.getAdapterInstance("ajax");
// 'withCredentials' を Breeze が jQuery.ajax メソッドに渡す設定にマージします
ajaxAdapter.defaultSettings = {
      xhrFields: {
          withCredentials: 真
      }
};

この情報 (またはその他の情報) を条件付きでリクエストに追加する必要がある場合は、より賢いアダプターを作成できます (たとえば、特定の URL に対してのみ)。

于 2013-06-25T16:48:14.410 に答える