5

ローカル マシンで正常に動作するプロジェクトがありますが、サーバーにデプロイした後は動作しません。JavaScript にブレークポイントを配置すると、それらにヒットしてコードを通過しますが、本来の動作をしません (jquery オートコンプリート)。必要なスクリプト ファイルがサーバーに保存されていることも確認しました。見落としているものはありますか?

実行する必要があるコード:

<script type="text/javascript">
    $(document).ready(function () {
        $("input.autocomplete").autocomplete({
            appendTo: '.container',
            source: function (request, response) {
                $.ajax({
                    url: '/Home/GetUsers',
                    type: "POST",
                    dataType: "json",
                    data: { query: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item, value: item };
                        }));
                    }
                });
            }
        });
    })
</script>

jquery が含まれている _Layout.cshtml ページ:

@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/jquery-ui.css")
@Styles.Render("~/Content/themes/base/jquery-ui.autocomplete.css")
@Scripts.Render("~/bundles/modernizr")

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.20.js")"></script>
4

5 に答える 5

5

私は私のmvcプロジェクトでもこの問題に直面しています....

次の手順でこの問題を解決しました。

1)これをスクリプトセクションのレイアウトページに入れます

<script type="text/javascript">
var RootUrl = '@Url.Content("~/")';
</script>

2) ajax url に「RootUrl」変数を追加します。(また、ajax URLの前に「RootUrl」を追加するJsファイルも機能しています)

 url: RootUrl +'Home/GetUsers';

それは私にとって完璧に機能していますが、他の解決策がある人は、私に投稿してください

于 2014-05-21T19:10:09.063 に答える
2

非常に古い質問ですが、これは将来誰かを助けるかもしれません。

開発された .asmx ページの場合、それにアクセスするには、web.config で HTTP 動詞を指定する必要があります。

ローカルでは機能しますが、IIS に展開した後は機能しません。

元:

  <webServices>
    <protocols>
      <add name="HttpGet"/>
      <add name="HttpPost"/>
    </protocols>
  </webServices>

ありがとうプージャG

于 2016-07-13T12:36:15.190 に答える
2

同じ問題があり、サーバーにデプロイした後に ajax 呼び出しが機能しません。Amol の方法はデプロイには適していますが、ローカルの開発用コンピューターでは機能しません。ローカル開発でデバッグする場合は、「~」を削除する必要があります。

いくつかの調査の後、両方の環境に適合するより良いソリューションを見つけてください。ajax メソッドで、URLパラメータを次のように変更します。

 url: "@Url.Action("GetUsers", "Home")"
于 2017-04-27T12:19:13.673 に答える