我在控制器中定義的函數:的web2py - AJAX調用返回404或無法處理的參數
def get_config_values():
path = unescape(request.vars['path'])
config = get_config_as_dict(path)
return dict(config)
在我看來,我使用jQuery $.ajax()
調用它的觀點:
$.ajax({
url: "{{=URL('get_config_values.json')}}",
contentType: "application/json; charset=utf-8",
data: {
path: page_path,
},
error: function(x, y, z) {
show_error(x.responseText, y, z);
hide_drawer();
},
success: function(data) {
$('#drawer_content').html(data);
},
type: 'POST',
});
簡而言之,我無法得到這個工作。
- 如果我用
type: 'POST'
然後按預期的函數被調用,但path
參數從未使它通過控制器的功能(這只是None
) - 如果我將其更改爲
type: 'GET'
web2py的決定作用做根本不存在,並返回一個HTTP 404(即使我從URL中刪除.json
,此操作仍然存在)。 web2py錯誤日誌中沒有錯誤。
web2py中似乎表現得很奇怪在這裏 - 獲得那個職位的第一名我有工作,顯式地設置contentType: "application/json"
否則我會看到一個404有作爲,儘管data:'json'
已經存在。
有沒有其他人看到和解決這個問題?我不在乎電話是GET還是POST,我只是想讓它工作!
感謝Anothony - 如果您返回字典,我還沒有意識到web2py會去尋找一個視圖。我用'import json;返回json.dumps(..)'來返回一個字符串,而不是字典,它工作正常。 – Jonny