首页 > web前端 > js教程 > django使用ajax post数据出现403错误如何解决

django使用ajax post数据出现403错误如何解决

亚连
发布: 2018-05-24 16:53:28
原创
3154 人浏览过

在django中,使用jquery ajax post数据,会出现403的错误,该如何解决呢?下面由我帮大家解决django使用ajax post数据出现403错误,需要的朋友可以参考下

本文通过两种方法给大家介绍在django中,使用jquery ajax post数据,会出现403的错误,具体内容请看下文。

方法一:

如果用jQuery来处理ajax的话,Django直接送了一段解决问题的代码。把它放在一个独立的js文件中,在html页面中都引入即可。注意这个js文件必须在jquery的js文件引入之后,再引入即可

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

$(document).ajaxSend(function(event, xhr, settings) {

 function getCookie(name) {

  var cookieValue = null;

  if (document.cookie && document.cookie != '') {

   var cookies = document.cookie.split(';');

   for (var i = ; i < cookies.length; i++) {

    var cookie = jQuery.trim(cookies[i]);

    // Does this cookie string begin with the name we want?

    if (cookie.substring(, name.length + ) == (name + &#39;=&#39;)) {

     cookieValue = decodeURIComponent(cookie.substring(name.length + ));

     break;

    }

   }

  }

  return cookieValue;

 }

 function sameOrigin(url) {

  // url could be relative or scheme relative or absolute

  var host = document.location.host; // host + port

  var protocol = document.location.protocol;

  var sr_origin = &#39;//&#39; + host;

  var origin = protocol + sr_origin;

  // Allow absolute or scheme relative URLs to same origin

  return (url == origin || url.slice(, origin.length + ) == origin + &#39;/&#39;) ||

   (url == sr_origin || url.slice(, sr_origin.length + ) == sr_origin + &#39;/&#39;) ||

   // or any other URL that isn&#39;t scheme relative or absolute i.e relative.

   !(/^(\/\/|http:|https:).*/.test(url));

 }

 function safeMethod(method) {

  return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));

 }

 if (!safeMethod(settings.type) && sameOrigin(settings.url)) {

  xhr.setRequestHeader("X-CSRFToken", getCookie(&#39;csrftoken&#39;));

 }

});

登录后复制

方法二:

在处理post数据的view前加@csrf_exempt装饰符

例如

1

2

3

@csrf_exempt

def profile_delte(request):

 del_file=request.POST.get("delete_file",&#39;&#39;)

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

简单介绍不用库(框架)自己写ajax

MVC中基于Ajax和HTML5实现文件上传功能

jquery与php结合实现AJAX长轮询

以上是django使用ajax post数据出现403错误如何解决的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板