2016-04-25 11 views
0

w3schools ajax exampleに基づいて、私は削除呼び出しを行い、テーブルから対応する行を削除しようとしています。ここでは、JQueryを使用してそれを行う方法について多くの回答がありますが、私はそれをやっていません。私は私がこのように私はJavaScriptを書く作られthis answerが見つかりました:AJAX(jQueryなし)でDjango csrfトークンを渡す方法

function deleteFullLicense(rowid, objectid) { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     if (xhttp.readyState == 4 && xhttp.status == 204) { 
     row = document.getElementById(rowid); 
     row.parentNode.removeChild(row); 
     } 
     else { 
     window.alert("Something went wrong. The delete failed."); 
     } 
    }; 
    xhttp.open("POST", "deleteLicense/" + objectid, true); 
    xhttp.send({'csrfmiddlewaretoken': '{{ csrf_token }}'}); 
} 

しかし、私はForbidden (CSRF token missing or incorrect.)メッセージが表示されます。トークンはどのように送信する必要がありますか?

+1

ヘッダーとして設定する必要があります。 これはあなたを助けるかもしれません:http://stackoverflow.com/questions/22063612/adding-csrftoken-to-ajax-request – rubentd

+0

私はそれをヘッダーとして設定しようとしました: 'xhttp.setRequestHeader(" csrfmiddlewaretoken "、 '{ {csrf_token}}))でも、違いはありません。それ以上のことが必要なのでしょうか? – jonalv

答えて

0

代わりに私がそれをX-CSRFTokenと呼んでいたのです。それについて見つけたhere if you want to read more

function deleteFullLicense(rowid, objectid) { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     if (xhttp.readyState == 4 && xhttp.status == 204) { 
     row = document.getElementById(rowid); 
     row.parentNode.removeChild(row); 
     } 
    }; 
    xhttp.open("POST", "deleteLicense/" + objectid, true); 
    xhttp.setRequestHeader("X-CSRFToken", '{{ csrf_token }}') 
    xhttp.send(); 
} 
関連する問題