为什么我无法通过jquery从django rest框架中的API获得响应?

时间:2016-02-24 22:00:38

标签: jquery json ajax django django-rest-framework

我正在使用Django REST框架来创建API。它与cURL一起工作正常。

curl -H 'Accept: application/json; indent=4' -u ratan:qazwsxedc123 http://127.0.0.1:8000/api/grocery/subcategories/

但是,当我尝试使用jQuery填充HTML页面中的div时,它无法正常工作,我收到了403禁用错误。

这是我的代码。

$.ajax({
  url: "http://127.0.0.1:8000/api/grocery/subcategories/?format=json",
  type: "GET",
  dataType: "json",
  data: {
    username: "ratan",
    password: "qazwsxedc123"
  },
  success: function(data) {
    console.log('ratan');
  },
});

我认为这可能是因为CORS,所以我尝试了django-cors-headers,但它没有帮助。

1 个答案:

答案 0 :(得分:1)

您在提出请求时错误地传递了您的用户名和密码。这在this SO question中进行了讨论。

请尝试使用此方法。

$.ajax
({
  type: "GET",
  url: "http://127.0.0.1:8000/api/grocery/subcategories/?format=json",
  dataType: 'json',
  headers: {
    "Authorization": "Basic " + btoa("ratan:qazwsxedc123")
  },
  success: function (){
    console.log('ratan'); 
  }
});