この問題はここで数回取り上げられていることを知っています。宿題をしてチェックし、見つけたすべての解決策を試しましたが、役に立たなかったので、何か不足しているに違いありません。
まず第一に、ajax 呼び出しの目的: これらのデータをデータベースに保存する Web サービスのメソッドに 3 つの文字列パラメーターを送信します。プロセスが成功すると、 true または false を含む json 文字列が返されます。
奇妙なことは、すべてがローカルで正常に機能することですが、ファイルをサーバーにアップロードするとすぐに、Web サービスへの ajax 呼び出しが機能しなくなりました...
まず、ブラウザに URL を入力して Web サービスにアクセスできるかどうかを確認しました。私はそれにアクセスして自分のメソッドを見ることができますが、メソッドのいずれかをテストして「呼び出し」ボタンをクリックすると、奇妙なことが起こります。ボタンをクリックすると新しいタブが開き、ページに戻ります利用可能なメソッドをリストします?!? なぜこれが起こるのか誰にも分かりますか?最も基本的な方法である Hello World でさえ機能しません...
問題のデバッグに問題があります。これをデバッグする方法についての洞察が必要です。
最も奇妙なことは、ajax 呼び出しが成功として返されることですが、データベースにデータが保存されていないことです?!?
その他の情報: 私のサイトは URL ルーティングを使用しています。これが Ajax 呼び出しに影響するかどうかはわかりませんが、とにかく言及したかったのです。
皆様のご協力に感謝いたします。
===========================================
編集:問題は解決しました
私のweb.configには、URLの最後に「/」を追加する書き換えルールがあり、それがajax呼び出しを台無しにしていたので、コードにコメントすると、すべてが期待どおりに機能しました。このコードは、Web サービスへの AJAX 呼び出しとうまく連携しないことに注意してください。
Web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="AddTrailingSlashRule1" stopProcessing="true">
<match url="(.*[^/])$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}/" />
</rule>
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.myDomain\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.myDomain.com/{R:1}" />
</rule>
<rule name="LowerCaseRule1" stopProcessing="true">
<match url="[A-Z]" ignoreCase="false" />
<action type="Redirect" url="{ToLower:{URL}}" />
</rule>
</rules>
</rewrite>
============================================