我有一個簡單的ajax發佈請求。該請求已發送。但爲什麼當我打印request.POST在views.py,它說:request.POST: <QueryDict: {}>
。簡單的ajax請求發佈空
if (start <= end) {
// fire a request to /tryit
var args = {
type: "POST",
url: "/tryit/",
data: {'x':x1, 'y': y1},
error: function() {
console.log("Error occurs");
},
success: function() {
console.log("save_modification works");
},
complete:done
};
$.ajax(args);
alert("ajax request is sent");
}
在views.py,
def tryit(request):
print "request: ", request
下面是當我打印請求信息的輸出。輸出包括如下。
[Wed Nov 14 14:50:44 2012] [error] post request: <WSGIRequest
[Wed Nov 14 14:50:44 2012] [error] path:/tryit/,
[Wed Nov 14 14:50:44 2012] [error] GET:<QueryDict: {}>,
[Wed Nov 14 14:50:44 2012] [error] POST:<QueryDict: {}>,
[Wed Nov 14 14:50:44 2012] [error] COOKIES:{'sessionid': 'f997a4c4ba0f576fe11141e0c0dcd38
d'},
[Wed Nov 14 14:50:44 2012] [error] META:{'CONTENT_LENGTH': '128',
[Wed Nov 14 14:50:44 2012] [error] 'CONTENT_TYPE': 'application/x-www-form-urlencoded',
[Wed Nov 14 14:50:44 2012] [error] 'DOCUMENT_ROOT': '/var/www',
[Wed Nov 14 14:50:44 2012] [error] 'GATEWAY_INTERFACE': 'CGI/1.1',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_ACCEPT': '*/*',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_ACCEPT_LANGUAGE': 'en-ca',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_CONNECTION': 'Keep-Alive',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_COOKIE': 'sessionid=f997a4c4ba0f576fe11141e0c0d
cd38d',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_PRAGMA': 'no-cache',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_USER_AGENT': 'Mozilla/5.0 (compatible; MSIE 9.0
; Windows NT 6.0; Trident/5.0)',
[Wed Nov 14 14:50:44 2012] [error] 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
[Wed Nov 14 14:50:44 2012] [error] 'PATH_INFO': u'/tryit/',
[Wed Nov 14 14:50:44 2012] [error] 'PATH_TRANSLATED': 'django.wsgi/tryit/',
[Wed Nov 14 14:50:44 2012] [error] 'QUERY_STRING': '',
[Wed Nov 14 14:50:44 2012] [error] 'REQUEST_METHOD': 'POST',
[Wed Nov 14 14:50:44 2012] [error] 'REQUEST_URI': '/tryit/',
[Wed Nov 14 14:50:44 2012] [error] 'SCRIPT_FILENAME': 'django.wsgi',
[Wed Nov 14 14:50:44 2012] [error] 'SCRIPT_NAME': u'',
[Wed Nov 14 14:50:44 2012] [error] 'SERVER_ADMIN': '[email protected]',
[Wed Nov 14 14:50:44 2012] [error] 'SERVER_PORT': '80',
[Wed Nov 14 14:50:44 2012] [error] 'SERVER_PROTOCOL': 'HTTP/1.1',
[Wed Nov 14 14:50:44 2012] [error] 'SERVER_SIGNATURE': '<address>Apache/2.2.22 (Ubuntu)
[Wed Nov 14 14:50:44 2012] [error] 'SERVER_SOFTWARE': 'Apache/2.2.22 (Ubuntu)',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.callable_object': 'application',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.enable_sendfile': '0',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.handler_script': '',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.input_chunked': '0',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.listener_host': '',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.listener_port': '80',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.process_group': '',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.queue_start': '1352926244930263',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.request_handler': 'wsgi-script',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.script_reloading': '1',
[Wed Nov 14 14:50:44 2012] [error] 'mod_wsgi.version': (3, 4),
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.errors': <mod_wsgi.Log object at 0xa8224c78>,
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.file_wrapper': <built-in method file_wrapper of
mod_wsgi.Adapter object at 0xa8210218>,
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.input': <mod_wsgi.Input object at 0xa8205ef8>,
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.multiprocess': True,
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.multithread': True,
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.run_once': False,
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.url_scheme': 'http',
[Wed Nov 14 14:50:44 2012] [error] 'wsgi.version': (1, 0)}>
But when I use fiddler, I can see the query parameter string. I am stuck here for a day. Please help. Thanks.
新的更新: 我使用Chrome和網絡選項卡,它說有一個內部服務器錯誤和引發劑是jquery.min.js:16。我不會詳細說明這些信息。這是否包含一些信息?
如果我從POST更改爲GET,查詢參數可以由服務器接收。但是,如果我使用POST,查詢參數不能發佈。怎麼解釋它?
你嘗試在Firebug尋找這種或類似的,看看什麼是真正被張貼?你確定'mydata'實際上包含數據嗎? – ernie
在Chrome開發人員工具中,轉至控制檯選項卡並觸發您嘗試測試的事件。出現錯誤嗎?如果是的話發佈錯誤。 –
您的代碼對於我們來說太不完整,無法提出合適的建議。給我們所有需要測試的代碼,我們可以給你更好的建議。 –