6

残っている髪の毛を抜こうと思っているので、何が問題なのかわかる方教えてください... ありがとうございます。私のグーグルと検索のすべても報われませんでした。

まず、jquery-1.7.2.min.js と ASP.net 2.0 Web フォームを使用しています。

jquery を使用して ajax 呼び出しを実行しようとしていますが、構文エラー/解析エラー メッセージが引き続き表示されます。さまざまな方法を試しましたが、dataType を json に設定するとすべてエラーになります。

ここに私が持っているものがあります:

$.ajax({
    type: "POST",
    url: "UserList.aspx/GetTestJson",
    data: {}, //have also tried "{}" and other options such as removing the line
    contentType: "application/json;charset=utf-8",
    dataType: "json",
    success: function(data, textStatus, jqXHR){
        alert('success');
    },
    //Using below instead of above makes no difference either
    //success: function(data){
    //  alert('success');
    //},
    error: function(jqXHR, textStatus, errorThrown){
        alert('errorThrown: ' + errorThrown);
    }
});

および aspx ページ メソッド:

[WebMethod]
public static string GetTestJson()
{
    return "Hello My World";
}

私もWebサービスを設定しようとしましたが、同じ結果が得られます。返される応答は、ページの完全な html または Web サービスからの xml のいずれかであり、dataType を json に設定したため、解析に成功していないようです。この場合、json のみを返すように応答を設定するにはどうすればよいですか?

これは私が運なしで試したことです:

[WebMethod]
public static string GetTestJson()
{
    HttpContext.Current.Response.ContentType = "application/json";
    string json = JavaScriptConvert.SerializeObject("Hello My World");
    return json;
}

jQuery で表示されるエラー メッセージ:

errorThrown.message = "Syntax error"
errorThrown.number = -2146827286
errorThrown.name = "SyntaxError"
textStatus = "parseerror"
jqXHR.status = 200
jqXHR.statusText = "OK"
jqXHR.readyState = 4
jqXHR.responseText = (the complete html of the page)

アイデアや提案はありますか?

ありがとう

4

2 に答える 2

12

@DaveWard と @CodeRoller に感謝します。

  1. ASP.NET Ajax 拡張機能をインストールします (ここ)
  2. System.Web.Extensions.dll への参照を追加
  3. ScriptModule httpModule を含めるように web.config を変更します (以下を参照)。

私の jQuery ajax 呼び出しと WebMethod は、元の投稿と同じままです。

私のweb.configは次のように変更されました:

  <system.web>
    <compilation debug="true">
      <assemblies>
        <!-- A bunch of other assemblies here-->
        <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
  </system.web>

他の誰かがこれが役立つことを願っています。

于 2012-08-01T22:56:07.120 に答える