我认为这是前端的问题,我不熟悉前端。所以,这可能不是最好的方法,建议是最受欢迎的。
我需要从通过django-rest-framework开发的rest api中获取一些数据并将其放入表单的输入字段中。
所以,这是代码,
function getcharmids(){
var get_url = "http://localhost:8000/get_charm_ids/" + name; # name I am declaring in the django template
console.log('clicked');
$.ajax({
type: 'GET',
dataType: "json",
url: get_url,
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
accept: "application/json",
success: function(data){
var charm_input = document.getElementById('id_charm_ids');
console.log(charm_input.value);
charm_input.value = data.charm_ids;
},
});
};
因此,它会调用URL,但需要额外的参数。
应致电http://localhost:8000/get_charm_ids/Kasam09
但它会调用/get_charm_ids/Shakti_02?callback=jQuery111009547658997639622_1518179689207&_=1518179689208
因此,由于额外的参数,我的后端无法处理此请求。这个问题的解决方法是什么?
通过jquery调用apis的正确方法是什么?
或者还有其他好方法吗?
编辑 -
这是我的api urls.py文件,
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^get_data/(?P<vid>(.*?))$', views.get_data),
url(r'^get_charm_ids/(?P<vid>(.*?))$', views.get_charm_ids),
]
这是我的views.py文件,
@api_view(['GET'])
def get_data(request, vid):
if request.method == 'GET':
#here is my code
return Response({'data':'a1,b2,c3,d4'})
@api_view(['GET'])
def get_charm_ids(request, vid):
if request.method == 'GET':
#here is my code
return Response({'charm_ids':'1,2,3,4,5,6'})
答案 0 :(得分:0)
由于您正在对URI使用GET,您可以:
var get_url = "http://localhost:8000/get_charm_ids/?name=" + name;
在Python Django中你可以使用request.GET.get('name')
。
另一种方法是请求 get_charm_ids API
var get_url = "http://localhost:8000/get_charm_ids/";
并将您的数据与您的jQuery&#39; $.ajax
有效负载一起传递:
data: { "name": name },