2011-11-04 38 views
0

我一直在使用JayRock框架和ASP.NET來返回正在通過JavaScript使用的JSON。一切都工作正常,直到我改變$ .ajax調用從GET到POST。在這個變化我現在收到這個錯誤。將類型切換到POST而不是GET後JSON調用不起作用

{"id":null,"error":{"name":"JSONRPCError","message":"Missing value.","errors":[{"name":"JsonException","message":"Missing value."}]}} 

這裏是我的javascript:

var tmp = '{ "assID": 52 }'; 
    var tmpObj = $.parseJSON(tmp); 


$.ajax 
({ 
    type: "POST", 
    url: '/jsonC.ashx/tester', 
    dataType: 'json', 
    data: tmpObj, 
    async: true, 
    contentType: 'application/json', 
    success: function (result) { 
     console.log(JSON.stringify(result)); 
    } 
}) 

人有什麼想法? 在此先感謝。

+3

是該網址期望接收帖子?如果只查找GET值,那麼您仍然必須在URL中傳遞參數。 –

+0

和Marc一樣,但是正確的做法是從POST獲取服務器端的參數,而不是在URL中冗餘地發送它們。 –

+0

我不認爲我明白,我使用Jayrock,我認爲它爲我處理差異?我似乎無法找到任何設置..我整天GOOGLE了這個問題 –

回答

0

這裏是什麼應該做的定義:

var dataString = '{ "assID": 52 }'; 
var postData = $.parseJSON(dataString); 
var response; 
$.ajax({ 
    type: 'POST', 
    url: '/jsonC.ashx/tester', 
    contentType: 'application/json', 
    data: JSON.stringify(postData), 
    dataType: 'json', 
    success: function(data) { 
     //do something for success if you want. If your response is JSON: 
     response = $.parseJSON(data) 
    }, 
    error: function(data) { 
     //do somtething for error if you want. If your response is JSON: 
     response = $.parseJSON(data) 
    } 
}); 
+0

其實我試圖發送數據,但簡化了代碼只是爲了嘗試從帖子得到回覆..這裏是數據.. var tmp ='{「assID」:52}'; var tmpObj = $ .parseJSON(tmp); 然後內Ajax調用.. \t數據:tmpObj, –

+0

@GregTyndall我已經編輯我的答案 – kamaci

+0

進取...現在我得到了一個服務器錯誤,我可以看到螢火蟲。「通知還沒有支持的。」傑洛克問題? –

0

您需要添加參數在配置值的數據...

$.ajax 
({ 
    type: "POST", 
    url: '/jsonC.ashx/tester', 
    dataType: 'json', 
    data: {id: some_value, other_var: 'some string'} 
    async: true, 
    contentType: 'application/json', 
    success: function (result) { 
     console.log(JSON.stringify(result)); 
    } 
}) 

只需用你的實際值進行替代數據的內容。按照現狀,您正在發佈到一個頁面,但不發送帖子變量。