0

検証プラグインから返された json 文字列の先頭から '//' を削除するには、dataFilter を使用する必要があります。私のコードの関連部分は次のとおりです。

$(document).ready(function () {
    $.ajaxSetup({
    dataFilter: function(data, type){
    return type == 'json' ? data.replace(/^(\/{2})?/, '') : data;
    }
});
    $("#myForm").validate({ 
        rules: {
            cgroup :{
                required: true,
                remote: {
                    url: compath + "/v.cfc?method=queryRemote&returnformat=json",
                    type: "post"
                }
            }

他のルールとメッセージは省略されています。

Coldfusion 10 に切り替えてから、最初の 2 文字としてセキュリティ文字列 (//) を JSON の先頭に追加するようになったため、応答側でこれを修正する必要があります。

エラーが ajaxSetup にあるのか、validate() または正規表現自体でそれを使用するのかはわかりません。

コンソールにエラーが表示されるようになりました。Fiddler で応答データを見ると、新しいサーバーの CFC にアクセスすると //true または //false が期待され、/ を前に保留しないサーバーの CFC に投稿すると true または false が表示されます。 / 文字。

ただし、 $.ajaxSetup() が何かをしていることを示す兆候はまったくありません。

回答: jquery.validate() は ajaxSetup() を壊します。解決策は、datafilter をリモート セクションに移動することです。

cgroup :{
                required: true,
                remote: {
                    url: compath + "/v.cfc?method=queryRemote&returnformat=json",
                    type: "post",
                    dataFilter: function(data, type){
                     return type == 'json' ? data.replace(/^(\/{2})?/, '') : data;
                    }
                }
            }
4

0 に答える 0