0

jQuery ポストを使用してサーバーへのポスト要求を行っていますが、IDE では正常に動作しますが、運用サーバーではサイレントに失敗します。

私が投稿する URL は次のとおりです: $.post("/NffCall/GetNffOrdersCallInfo", ... );

[HttpPost] public JsonResult GetNffOrdersCallInfo() アクション メソッドに POST リクエストを送信します。

私の IDE URL は次のようになります。

http://localhost:54415/NffCall/Details/SE/10356392

私のサーバーの本番 URL は次のようになります。

http://appsrv-se.MyDomainName.dk/TCWebToolsTestTwo/NffCall/Details/SE/10356392

上記のサーバー実動 URL では、URL パスは serverName.MyDomainName.dk/WebSiteName です。

IDE で投稿している URL は正常に動作します: /NffCall/GetNffOrdersCallInfo

しかし、この URL をサーバーの運用環境で動作するように変更する必要があるのでしょうか?

IDE では、[HttpPost] public JsonResult GetNffOrdersCallInfo() を使用して、jQuery で HTML を動的に生成します。 サーバーで実行したとき。ただ何も起こっていません。

サーバー上のシナリオで必要な、URL の一部が欠けていますか? または、何が問題になる可能性がありますか?使用しているサーバーは Windows Server 2012 です。

4

2 に答える 2

3

URLヘルパーを使用して生成するのではなく、javascriptファイルでコントローラーアクションにURLをハードコーディングしたようです:

$.post("/NffCall/GetNffOrdersCallInfo", ... );

ASP.NET MVC アプリケーションでは、常に URL ヘルパーを使用してコントローラー アクションへの URL を生成する必要があります。例えば:

<script type="text/javascript">
    var myUrl = '@Url.Action("GetNffOrdersCallInfo", "NffCall")';
</script>

次に、このグローバル javascript 変数を使用できます。

$.post(myUrl, ... );

グローバル javascript 変数を使用して URL を保存する代わりに、DOM の一部として保存することもできます。たとえば、おそらく、div、フォーム、ボタンなどの HTML 要素を AJAX 化しています。したがって、この URL を DOM 要素の一部として埋め込むことができます。

<div id="someDiv" data-url="@Url.Action("GetNffOrdersCallInfo", "NffCall")">Click me</div>

次に、JavaScript ファイルで、この要素のクリック イベントまたは何かをサブスクライブしている可能性があります。

$('#myDiv').click(function() {
    var url = $(this).data('url');
    $.post(myUrl, ... );
});

定義したルートを尊重し、仮想ディレクトリ名などのホスティング環境を考慮して、すべての場合に URL ヘルパーによってどのように URL が生成されるかに注意してください。したがって、基本的に、どこにいても正しい URL が生成されることが保証されますアプリケーションが実行されている (ローカル、テスト、本番など)

于 2013-10-28T21:14:32.583 に答える
0

アプリが でホストされている場合はhttp://host/TCWebToolsTestTwo/、すべてのサービス呼び出しをこのアドレスに対して相対的に行います。/つまり、状況 (またはページが存在する場所) に応じて、先頭を削除するか、URI を変更する必要がある場合があります。

于 2013-10-28T21:05:03.327 に答える