2013-03-20 6 views
21

無効なパラメータがアクションに渡されると、400のBad Requestを含むJSONデータを返すASP.NET MVCコントローラにアクションがあります。ASP.NET + Azure 400 Bad RequestがJSONデータを返さない

[HttpDelete] 
public ActionResult RemoveObject(string id) { 
    if(!Validate(id)) { 

     Response.StatusCode = (int)HttpStatusCode.BadRequest; 
     return Json(new { message = "Failed", description = "More details of failure" }); 
    } 
} 

これは、IISまたはVisual Studioから起動された開発テストサーバーで完全に動作します。プロジェクトがAzureにデプロイされた後、400 Bad RequestがJSONデータなしで返されます。メッセージのコンテンツタイプが 'text/html'と 'Bad Request'に変更されました。

なぜAzureでは動作が異なりますか?

答えて

45

「web.config」に次のエントリを追加します。

<system.webServer> 
    <httpErrors existingResponse="PassThrough"/> 
</system.webServer> 

これにより、HTTPエラーが邪魔されずに通過することができます。

+4

これを有効にするためのセキュリティ上の問題はありますか? –

+7

DEAR GOD。私はちょうど私のAJAXリクエストがなぜ機能しないのかを理解しようと、最後の12時間を費やしました。私はCORSのサポートを追加してから、私のExpress.jsアプリでプロキシの設定を微調整してみました。これは、JSONが正しく返されるようにするための簡単な解決策でした。 –

+0

私は、IIS 8を実行しているAmazon AWSインスタンスで同じ問題を抱えていました。 – mcdrummerman

関連する問題