jQuery Form プラグインは、jQuery v1.4.2 に基づいて JSON データを返すときにエラーを報告し続けます。これは、次のコンテンツを変更することで復元できます。
元のバックグラウンド出力データ形式は次のようなものです: {sitename:'Developer Network',siteurl:'www.AAA.net',level:10} は、{"sitename":"Developer Network","siteurl" に変更する必要があります。 :"www .AAA.net","レベル":10}
つまり、jQuery バージョン 1.4.2 では parseJSON メソッドに通常の判定が追加されたため、名前を二重引用符で囲む必要があります。
if ( /^[ ],:{}s]*$/.test(data.replace(/\(?:[" \/bfnrt]|u[0-9a-fA-F]{ 4})/g , "@") .replace(/"[^" \nr]*"|true|false|null|-?d+(?:.d*)?(?:[eE][+-]? d+)?/g , "]") .replace(/(?:^|:|,)(?:s*[)+/g, "")) ) { // 最初にネイティブ JSON パーサーを使用してみます } それ以外 { |
jQuery Form プラグインで変更が必要なもの
if (scr || s.textarea) { // ユーザーがテキストエリアに応答を埋め込んだかどうかを確認します var ta = doc.getElementsByTagName('textarea')[0]; 場合 (た) { xhr.responseText = ta.value; } else if (scr) { // json 応答の前後に pre を挿入するブラウザーのアカウント var pre = doc.getElementsByTagName('pre')[0]; if (前) { xhr.responseText = pre.innerHTML; } } } else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { xhr.responseXML = toXml(xhr.responseText); } |
次のように変更します。
if (scr || s.textarea) { // ユーザーがテキストエリアに応答を埋め込んだかどうかを確認します var ta = doc.getElementsByTagName('textarea')[0]; 場合 (た) { xhr.responseText = ta.value; } else if (scr) { // json 応答の前後に pre を挿入するブラウザーのアカウント var pre = doc.getElementsByTagName('pre')[0]; if (前) { xhr.responseText = pre.innerHTML; それ以外の場合、xhr.responseText=doc.body.innerHTML; } } else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { xhr.responseXML = toXml(xhr.responseText); } |
元のアドレス: http://www.vifo.net/Program/JavaScript/10090191.shtml