Javascript AJAX数据的控制台日志是我的html代码吗?

Javascript AJAX数据的控制台日志是我的html代码吗?,javascript,jquery,django,ajax,Javascript,Jquery,Django,Ajax,我试图通过ajax请求传输数据。我想传输输入字段的内容。但是console.log(“ok”+数据)的输出是“ok”+我所有的html代码,尽管console.log(“ok”+formData)的输出是我需要的值 分别在Django视图变量中q=None 您正在使用相同的视图来呈现页面和GETajax请求。您也将在ajax请求中获得html页面的链接。您需要检查您的is请求是否是ajax请求。你需要做一些事情,比如: from django.http import JsonResponse

我试图通过ajax请求传输数据。我想传输输入字段的内容。但是
console.log(“ok”+数据)
的输出是“ok”+我所有的html代码,尽管
console.log(“ok”+formData)
的输出是我需要的值

分别在Django视图变量中
q=None


您正在使用相同的视图来呈现页面和
GET
ajax请求。您也将在ajax请求中获得html页面的链接。您需要检查您的is请求是否是ajax请求。你需要做一些事情,比如:

from django.http import JsonResponse


def search(request):
    q = request.GET.get('q')
    print(q) # Output: q = None
    if request.is_ajax():
        return JsonResponse({'q': q})
    return render(request, 'myapp/new_topic.html', {'q':q} )
从文档中:

如果请求是通过XMLHttpRequest发出的,则返回True 检查HTTP_X_请求的_以及字符串的标头 “XMLHttpRequest”。大多数现代JavaScript库都发送此标题


在这里,你们面临着一个问题

processData:false

参考:

希望这对你有帮助

jQuery(文档).ready(函数($){
$(“#搜索_btn”)。单击(函数(){
var formData={
q:$(“#搜索”).val()
};
$.ajax({
url:“https://google.com",
数据:formData,
processData:对,
类型:“post”,
数据类型:“json”,
cache:false,
成功:功能(数据){
如果(数据!=''){
console.log(“ok”+数据);
}
否则{
控制台日志(“否”);
}
},
故障:功能(数据){
控制台日志(“失败”);
控制台日志(数据);
},
});
});
});


post your view code.change GET to post如果数据类型为JSON,则将数据类型替换为contentType:“application/JSON”,数据类型:“JSON”,将GET to post更改并没有解决问题。
processData (default: true)
Type: Boolean
By default, data passed into the data option as an object (technically, anything other than a string) 
will be processed and transformed into a query string, fitting to the 
default content-type "application/x-www-form-urlencoded". 
If you want to send a DOMDocument, or other non-processed data, set this option to false.