0

jquery ajaxポストリクエストをWebサービスに送信しているaspxページがあります。投稿呼び出しに Authorization ヘッダーを追加しました。私のコードは:-

 $.ajax({
        type: "POST",
        beforeSend: function (xhr) {
              xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
        },
        url: " My Web Service URL ",
        contentType: "application/json; charset=utf-8",
        data: { HtmlText: data},
        datatype: 'json',
        success: function (data) {
             alert(JSON.stringify(data));
        }
    });

Web.configに追加しました:-

 <system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule" />
</modules>
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Request-Headers" value="Authorization, Content-Type"/>
    <add name="Access-Control-Allow-Headers" value="Authorization" />
    <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
  </customHeaders>
</httpProtocol>
<handlers>
  <remove name="WebDAV" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <remove name="OPTIONSVerbHandler" />
  <remove name="TRACEVerbHandler" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<directoryBrowse enabled="true" />

リクエストを送信した後、インスペクト要素(Chrome)でレスポンスを取得しています:-

リモート アドレス: "マイ リモート アドレス" リクエスト URL: "マイ ホスト URL" リクエスト メソッド:OPTIONS ステータス コード:405 メソッドは許可されていません

リクエスト ヘッダー ビュー ソース :-

Accept: / Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8,es;q=0.6,fr;q=0.4,hi;q=0.2 Access-Control-Request-Headers :accept, authorization, content-type Access-Control-Request-Method:POST Connection:keep-alive Host:" My Host URL " Origin:test Referer:/test/MyPage.aspx User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/35.0.1916.153 Safari/537.36

応答ヘッダー ビュー ソース :-

Access-Control-Allow-Headers:Origin、X-Requested-With、Content-Type、Accept Access-Control-Allow-Methods:GET、POST、PUT、DELETE、OPTIONS Access-Control-Allow-Origin:* Allow:POST Cache-Control:no-cache Content-Length:76 Content-Type:application/json; charset=utf-8 Date:Tue, 08 Jul 2014 12:42:10 GMT Expires:-1 Pragma:no-cache サーバー:Microsoft-IIS/7.5 X-AspNet-Version:4.0.30319

4

1 に答える 1

0

MVC 5 Web Api 最初に、クロス ドメインの web.config ファイルに customHeader を追加しましたが、期待どおりの出力が得られませんでした。そこで、コントローラーの各メソッドに [EnableCors(" ", " ", "*")] を追加すると、必要な出力が得られます。変 !!しかし、出力を得ました。

于 2014-11-03T08:38:31.363 に答える