2011-12-13 20 views
1

jQuery ajax投稿にエラーが戻ってきました。jQuery AJAX投稿asp.net

IEで受信したエラーはSyntaxErrorです:無効な文字です。あなたが別の場所(クリック&ドラッグ)にボックスのいずれかを移動するとAjaxのポストが発生​​

プロジェクト全体はで見つけることができます。

エラーを表示するために、エラーajaxプロパティをjQuery ajax呼び出しに追加する必要がありました。メソッド

[WebMethod] 
public static void SaveListOrder(int[] ids) 
{ 
    for (int i = 0; i < ids.Length; i++) 
    { 
     int id = ids[i]; 
     int ordinal = i; 
     //... 
    } 
} 

背後

function saveOrder() { 
var data = $("#gallery li").map(function() { return $(this).attr("itemID"); }).get(); 
$.ajax({ 
    url: "example.aspx/SaveListOrder", 
    data: '{ids:["' + data.join('","') + '"]}', 
    dataType: "json", 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    error: function(data, status, jqXHR) { alert(jqXHR); } 
}); 
}; 

コードの問題が何であるか上の任意のアイデア?前もって感謝します。

EDIT/ANSWER:

問題は、web.configファイルです。誰もがこれは素晴らしいことだが必要とされる理由について詳しく説明したい場合、私は、web.configファイル

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

で、次のHttpModuleを追加しました。私はそれが許可されたら答えとして投稿を作成します。

ありがとうございます!

+0

json形式の文字列ではなく、実際のjavascriptオブジェクトに 'data'を設定してみてください。 – BNL

+0

jsonエラーのようです。結果のjsonデータを表示できますか? – RCE

+0

JavaScriptのオブジェクトを渡してWebMethodで解釈する方法について、「結果のjsonデータを表示できますか?」とわかりません。 – PsychoDUCK

答えて

0

問題はweb.configにあります。誰もがこれは素晴らしいことだが必要とされる理由について詳しく説明したい場合、私は、web.configファイル

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

で、次のHttpModuleを追加しました。私はそれが許可されたら答えとして投稿を作成します。

ありがとうございます!

0

オブジェクトキーは二重引用符で囲む必要があります。実際、JSONのすべての文字列を二重引用符で囲む必要があります。あなたのコードでは、idsは二重引用符で囲まれていません。このように二重引用符で囲む必要があります。

data: '{"ids":["' + data.join('","') + '"]}', 

JSONLintを使用すると、簡単にJSONを検証できます。

+0

私はあなたが何を得ているのか理解していますが、私はあなたの修正を運がないまま試しました。 – PsychoDUCK

0

traditional: trueをAJAXコールに追加してみてください。私はあなたが正しく配列を取得するためにそれを設定する必要がありますと信じています。このように

$.ajax({ 
     url: "example.aspx/SaveListOrder", 
     traditional: true, 
     data: '{ids:["' + data.join('","') + '"]}', 
     dataType: "json", 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     error: function(data, status, jqXHR) { alert(jqXHR); } 
    }); 
+0

私は伝統的なものを追加しました。私はまだ調査中です。私は私のポストにプロジェクトリンクを掲載しました。誰でもそれをダウンロードして試すことができますか? – PsychoDUCK

0

返信する応答と関係がある可能性があります。 IEは、アプリケーションがjsonコンテンツタイプで応答することを要求していると思います。

関連する問題