jQuery将额外的变量添加到url

时间:2018-02-09 13:12:44

标签: javascript jquery django django-rest-framework

我认为这是前端的问题,我不熟悉前端。所以,这可能不是最好的方法,建议是最受欢迎的。

我需要从通过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'})

1 个答案:

答案 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 },