GETとPOSTを受け入れ、ビューとJSONを返す複数のコントローラを持つサイトを開発しました。開発環境ではすべて正常に動作します。Sitecore AJAX POST:アクションメソッドを呼び出せませんでした
しかし、クライアントの受け入れサーバーには問題があります。すべてのGETが結果を返しますが、POSTはhere by John Westというエラーを返します。 Stacktraceは同一です。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<initialize>
<processor type="[Namespace].Assistance.Pipelines.RegisterWebApiRoutes, [Namespace].Assistance"
patch:before="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc']" />
</initialize>
</pipelines>
</sitecore>
</configuration>
プロセッサは次のようである:
System.InvalidOperationException: Could not invoke action method: askquestion. Controller name: Assistance. Controller type: [Namespace].Assistance.Controllers.AssistanceController
我々は、各コントローラのルートを定義するアプローチを使用
public class RegisterWebApiRoutes
{
public void Process(PipelineArgs args)
{
RouteTable.Routes.MapRoute(
name: "Assistance.Api",
url: "api/assistance/{action}",
defaults:new {controller = "Assistance" });
}
}
アクションメソッドは、この
[HttpPost]
public ActionResult AskQuestion(AskQuestionViewModel model)
{
if (ModelState.IsValid)
{
....
return View("Confirmation");
}
else
{
return View(model);
}
}
似ています
何が起こっていますか?どうやらSitecoreはAJAX POST要求をブロックします。間違いなく、これは構成上の問題です。どこを見ますか?