1

jQueryを介してJSONデータをWebサーバーに送信しようとしていますが、エラーが発生しています。Uncaught TypeError:'in'演算子を使用して{"id":45、 "isRead":true}の'context'を検索することはできません

私がテストしているコード:

var obj = {};
obj.id = 45;
obj.isRead = true;
var data = JSON.stringify(obj);
var url = "/notification/read"
$.ajax(url, data, 'application/json', function() {
    // code remove notification from the DOM
    });
});

これを行うためのより良いまたはより正しい方法はありますか?$.ajax呼び出しでもパラメーターが正しく取得されているかどうかはわかりません。


私が仕事に 取り掛かったUPDATEコード

var obj = {
    id: 45,
    isRead: true
};
var json = JSON.stringify(obj);
var url = "/notification/read"
$.ajax({ url: url, 
         type:'POST', 
         contentType: 'application/json', 
         data: json, 
         success: function(data, textStatus) {
            // do stuff
         }
});

私のサーバーは、アプリケーション/jsonとしてPOSTされたJSONデータを期待していました。それで、私はこれらすべての変数が必要だと思ったのは間違っていましたか?これらがないと、GETとして送信され、application/x-www-form-urlencodedでした。stringifyがないと、それも機能しませんでした。

4

3 に答える 3

2

ajax 関数に渡す引数が多すぎます: http://api.jquery.com/jQuery.ajax/

また、JSON.stringify呼び出しは必要ありません。jQuery が処理します。

var obj = {
  'id':45,
  'isRead':true
};
$.ajax({
  url: "/notification/read",
  data: obj,
  success: function(data, textStatus){
    /* code here */
  }
});
于 2011-08-04T19:16:39.567 に答える
0
$.ajax(url, obj);

2番目のパラメータとしてオブジェクトを送信する必要があります

{成功:成功、データ:データ}

于 2011-08-04T19:12:29.240 に答える
0

ドキュメントはここにあります:

http://api.jquery.com/jQuery.ajax/

パラメータを複数のオブジェクトではなく、1つのオブジェクトとして渡す必要があります

于 2011-08-04T19:12:43.147 に答える