Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Django中没有来自Ajax的POST数据_Javascript_Python_Ajax_Django - Fatal编程技术网

Javascript Django中没有来自Ajax的POST数据

Javascript Django中没有来自Ajax的POST数据,javascript,python,ajax,django,Javascript,Python,Ajax,Django,我想将AJAX中的一组数据发布到Django站点。 来自Javascript的代码: var arr = {}; arr["first"] = "first"; arr["second"] = "second"; arr["third"] = "third"; var success = "" var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlh

我想将AJAX中的一组数据发布到Django站点。 来自Javascript的代码:

var arr = {};
arr["first"] = "first";
arr["second"] = "second";
arr["third"] = "third";
var success = ""
    var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
     var rawtext = xmlhttp.responseText;

     document.getElementById("myDiv").innerHTML= jsonToHTMLTable(rawtext);
    }
  }
xmlhttp.open("POST","/AJAX?modus=create");  
xmlhttp.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
alert(JSON.stringify(arr));
xmlhttp.send({data:JSON.stringify(arr)});
但是当我调试(使用Eclipse)时,我看不到数组或其他有用的字段

这是来自django的代码:

def AJAX(request):
if request.method == 'POST':
    method = request.REQUEST.get("modus","")
    if method == 'create':
        test = request.POST['data']
更多信息 从Django调试进行回溯

Environment:
Request Method: POST
Request URL: http://localhost:8000/AJAX?modus=create
Django Version: 1.6.5
Python Version: 3.4.1
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "C:\Python34\lib\site-packages\django\core\handlers\base.py" in get_response
  112. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Lee\web\reportingTool\ReportingTool\TempDosage\views.py" in AJAX
14. test = request.POST['data']
File "C:\Python34\lib\site-packages\django\utils\datastructures.py" in __getitem__
301.             raise MultiValueDictKeyError(repr(key))
Exception Type: MultiValueDictKeyError at /AJAX
Exception Value: "'data'"

如何访问我的数据?

我发现错误的部分(Javascript):

下面是新的JavascriptPart(对我来说很有用):

这是django部分(视图):


你能粘贴你视图的代码吗。通常,它位于:
request.POST
中,但这可能与settings.py中的
DEBUG=True
不同?您使用的是哪个版本的Django?变量
test
包含什么?你调试了request.POST吗?服务器响应是什么?请提供更多信息,这是您希望得到帮助的愿望。是的,调试是真的,我正在使用1.6.5版本。变量测试包含注释。它应该对数组计数(JSON格式)。调试日志:MultiValueDictKeyError at/AJAX“'data'”您真的需要在Javascript中支持IE5吗?不,我复制并粘贴了这一部分
var arr = {};
arr["first"] = "first";
arr["second"] = "second";
arr["third"] = "third";
var success = ""
$.ajax({
type: "POST",
url: "/AJAX?modus=create",
data: {"data": JSON.stringify(arr)},
success: success,
dataType: "application/json",
headers: {"X-CSRFToken": getCookie('csrftoken')}
});
def AJAX(request):
  if request.method == 'POST':
      method = request.REQUEST.get("modus","")
      if method == 'create':
          data = request.POST.get('data');