2011-08-04 24 views
1

我想通過jQuery將JSON數據發送到我的web服務器,並且遇到錯誤。 遺漏的類型錯誤:無法使用 '在' 操作符來搜索 '語境' 中{ 「ID」:45, 「isRead」:真正}通過jQuery發送JavaScript對象到web服務器調用 - 什麼是正確的方式?

代碼我測試:

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 JSON數據。那麼我錯誤地認爲我需要所有這些變量?沒有這些,它被作爲GET發送,並且是application/x-www-form-urlencoded。沒有串聯它也沒有工作。

回答

0
$.ajax(url, obj); 

您需要發送一個對象作爲第二PARAM

{成功:成功,數據:數據}

+0

「回撥應該是參數」是什麼意思?我把數據放在方括號內嗎?或者這是否意味着可選? – BuddyJoe

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 */ 
    } 
}); 
+0

類型:'POST' - 不需要? – BuddyJoe

+0

好像是POST,但Firefox顯示我發送id = 45&isRead = true作爲應用程序/ x-www-form-urlencoded – BuddyJoe

+0

實際上它是一個GET之前我添加了類型:'POST'...怪異爲什麼我有設置額外的參數,你不? – BuddyJoe

相關問題