2017-12-01 17 views
4

他のサイトのcdnのように動作するサイトが1つあります。Access_Control_Allow_Originを書き換えることができません

私は私がここにAccess-control-allow-origin with multiple domains

に回答#2に触発された。しかしAccess_Control_Allow_Originの書き換えはlocalhostのみでは動作しないのWeb.config

<httpProtocol> 
    <customHeaders> 
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" /> 
    <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,PUT,DELETE" /> 
    <add name="Arr-Disable-Session-Affinity" value="True" /> 
    </customHeaders> 
</httpProtocol> 

<rewrite> 
    <outboundRules> 
    <clear /> 
    <rule name="AddCrossDomainHeader"> 
     <match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" /> 
     <conditions logicalGrouping="MatchAll" trackAllCaptures="true"> 
     <add input="{HTTP_ORIGIN}" pattern="(http(s)?://((.+\.)?[a-zA-Z0-9-]*\.ap\.dk|(.+\.)?localhost\:[0-9]*))" /> 
     </conditions> 
     <action type="Rewrite" value="{C:0}" /> 
    </rule> 
    </outboundRules> 
</rewrite> 

に以下を追加しました。ライブサイトでは、それが書き換えられていないし、私はこのようなエラーが出る:

https://aptestlogin.ap.dk//Widgets/Footer.htmlのロードに失敗しました

:「アクセス制御-起源許可」ヘッダが等しくない値「https://aptestproject.ap.dk」を持っています供給元。起源「https://aptestcompany.ap.dkは、」したがって、私は私のブラウワーのキャッシュをクリアする必要があり、私はこれを求めて別のサイトを開いた場合は、これを繰り返します。この「Footer.html」をロードするためにアクセス

を許可されていません。

+0

IISはライブで直接またはプロキシ経由で動作しますか?nginx? – Interreto

答えて

0

正規表現のパターンを確認してください。たぶん前方スラッシュはエスケープされません。上記

https?:\/\/((.+\.)?[a-zA-Z0-9-]*\.ap\.dk|(.+\.)?localhost(\:[0-9]*)?) 
1

あなたは

インストール・パッケージのMicrosoft.AspNet.WebApi.Cors

ファイルを開くApp_Start/WebApiConfig.csを次のように試すことができます。

public static void Register(HttpConfiguration config) 
     { 

      config.EnableCors(); //add this 


     } 
0

変更

<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" /> 

<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern="*" /> 
0

にあなたが持っている場合は、パッケージマネージャまたはNugetパッケージマネージャからMicrosoft.AspNet.WebApi.CorsをインストールするVisual Studioで作業している場合。

ファイルApp_Start/WebApiConfig.csを開きます。 WebApiConfig.Registerメソッドに次のコードを追加します。

using System.Web.Http; 
namespace WebService 
{ 
    public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     // New code 
     config.EnableCors(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
    } 
} 

あなたはそれのためのビデオの多くを得るでしょうYouTubeの中でここhttps://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-apiを超える参照するか、検索このCROSS ORIGINリソース共有(CORS)について詳細をお知りになりたい場合は、このアプリケーション全体にCORSを有効にしますが。

関連する問題