2

前書き: これに似た質問がたくさんあることは知っていますが、どれも役に立ちませんでした。

私は少し束縛されています。

$.ajax呼び出しを使用してデータをページに返すASP.NET アプリケーションがあります。私はこれを 3 つの異なるアプリケーション サーバーで使用しており、そのすべてが Windows Server 2003 です。

私はこれをローカルで実行していません。3 つの Web アプリケーション サーバー上にあります。2 動作、1 動作しません。

この呼び出しは、Dev サーバー (DevTest サーバー) では問題なく機能しますが、運用サーバーでは失敗します。Chrome でコンソールを確認したところ、Dev および DevTest 環境では ajax 呼び出しが返さapplication/jsonれていますが、本番環境では が返されていることがわかりましたtext/html。また、私の Dev および DevTest サーバーでは、すべてが正常に機能し、json が正常に返されますが、本番環境では 200 OK が返されますが、呼び出しページ全体が html で返され、ajax のエラー関数が実行されます。電話。

これが私のajax呼び出しです:

$.ajax({
      type: "POST",
      contentType: "application/json; charset=utf-8",
      url: "RequestDetail.aspx/postAsync",
      data: "{'reqSystem': '" + $('#ctl00_PlaceHolderMain_lblRequestSystem').text() + "', 'vendorNumber': '" + $('#ctl00_PlaceHolderMain_txtVendorNo').val() + "'}",
      dataType: "json",
      success: AjaxSucceeded,
      error: AjaxFailed
      });

コードビハインドは次のとおりです。

<System.Web.Services.WebMethod()> _
Public Shared Function postAsync(ByVal reqSystem As String, ByVal vendorNumber As String) As String
    Dim required = CheckForSpecialApproval(reqSystem, vendorNumber)
    Return required.ToString()
End Function

本番環境で Chrome のコンソールに表示されるのは次のとおりです。

プロダクション Chrome コンソール

これは、Dev での外観です。

開発用 Chrome コンソール

本番サーバーの IIS で MIME タイプを確認しましたが、javascript と json の MIME タイプが存在しなかったため、それらを作成する必要がありましたが、まだ機能していません。これを最後までグーグルで検索しましたが、何が問題なのかわかりません。

他に必要な情報があれば、喜んで提供します。

助けてください。

前もって感謝します。

4

2 に答える 2

1

本番環境の応答はすべて不思議なことにサイズが同じであり、開発者の応答よりもはるかに大きくなっています (366B に対して 173KB)。その応答の内容を調査する必要がありtext/htmlます。内容が実際には HTML 形式のエラー メッセージである可能性は非常に高いです。Chrome で応答を表示できない場合は、Fiddler を使用してください。

于 2013-03-13T10:50:34.933 に答える
1

本番環境の web.config に欠落しているエントリがあったことが判明しました。

<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, &#xD;&#xA;                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                PublicKeyToken=31BF3856AD364E35">
  <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, &#xD;&#xA;                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                PublicKeyToken=31BF3856AD364E35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, &#xD;&#xA;                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, &#xD;&#xA;                    System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                    PublicKeyToken=31BF3856AD364E35">
      <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, &#xD;&#xA;                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
      <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, &#xD;&#xA;                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
      <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, &#xD;&#xA;                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
      <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, &#xD;&#xA;                System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &#xD;&#xA;                PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
    </sectionGroup>
  </sectionGroup>
</sectionGroup>

<add name="ScriptModule" type="System.Web.Handlers.ScriptModule,  System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

お時間とご回答いただきありがとうございます。

于 2013-03-13T11:10:31.237 に答える