2013-05-17 9 views
10
$.ajax({ 
    async: false, 
    type: "POST", 
    url: url+"module/listing/"+projectId, 
    data: "ajax=true", 
    success: function(response) { 
     $.each(response, function(key, val) { 
     alert(val.id); 
     }); 
    } 
}); 

これは私のコードです。 Ajaxの成功私はJSONの応答を得ています。レスポンスは配列形式です。そして私はその反応に注意を喚起したい。しかし、エラー"TypeError: invalid 'in' operand obj"がJQuery 1.9.1のバージョンになっています。TypeError:jquery 1.9.1で 'in'オペランドobjが無効です。

+1

あなたはどのようなブラウザこれをテストしますか? – Daedalus

答えて

10
success: function(response) { 
     response=JSON.parse(response); 
     $.each(response, function(key, val) { 
     alert(val.id); 
     }); 
    } 
+0

not responce私は応答= JSON.parse(応答)を追加しました。しかし、丁寧な答えを得ていない。 – user2392605

+0

、PHPスクリプトからの出力を記述してください。火かき棒の中のコンソールで見ることができます。 –

+0

これは私のために働いた – pushya

2

私は同じ問題を抱えていました。あなたはjQuery.type(応答をすればチャンスはあるので、オペランドとしてオブジェクトを必要とするオペレータ「に」

return type === "array" || type !== "function" && 
    (length === 0 || 
    typeof length === "number" && length > 0 && (length - 1) in obj); 

Javascriptを:エラーは次の行から「isArraylike(OBJ)」jQueryの関数からトリガされています)オブジェクト以外のもの(例:文字列またはヌル)を表示します

Amitの回答がうまくいくはずです。そうでない場合は、回答データのタイプをチェックし、そこから作業してください。

3

JSON配列を2回エンコードした後にこのエラーが発生しました。たぶんそれは誰にでも役立つでしょう。

0

私の場合、配列としてローカルを定義するのではなく、私はそれを文字列として定義していました。 JSON.parseそれはトリックをしました。

2

dataType: "json"を使用すると、jQueryに応答をJSONとして解析させることができます。あなたの問題を解決します。

0

、このいずれかを試してみてくださいは、(私は知らない)何らかの理由で、私のため

$.each(eval(response), function(key, val) 

を働いたあなたはeval()を使用して「それを変換」する必要がありますので、応答はなく文字列のオブジェクトと考えられています。

0

jQuery DataTablesに列名の配列を送信中にこのエラーが発生しました。配列は、名前の配列だけでなく、オブジェクトの配列である必要があります。 link to columns

BAD 列:[ "列1"、 "列2"]

GOOD 列:[{タイトル: "列1"}、{タイトル: "列2"}]

関連する問題