How to call a Django view function Asynchronously (AJAX) using Vue
up vote
0
down vote
favorite
I have a form with a button other then submit button. I would like Vue to call a Django view asynchronously when that button is clicked and return a JSON message saying function was called successfully.
ajax django vue.js vuejs2 django-views
add a comment |
up vote
0
down vote
favorite
I have a form with a button other then submit button. I would like Vue to call a Django view asynchronously when that button is clicked and return a JSON message saying function was called successfully.
ajax django vue.js vuejs2 django-views
OK. So what is your question? Did you try googling "vue ajax"?
– Daniel Roseman
Nov 8 at 9:24
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have a form with a button other then submit button. I would like Vue to call a Django view asynchronously when that button is clicked and return a JSON message saying function was called successfully.
ajax django vue.js vuejs2 django-views
I have a form with a button other then submit button. I would like Vue to call a Django view asynchronously when that button is clicked and return a JSON message saying function was called successfully.
ajax django vue.js vuejs2 django-views
ajax django vue.js vuejs2 django-views
asked Nov 8 at 6:32
Aseem
653618
653618
OK. So what is your question? Did you try googling "vue ajax"?
– Daniel Roseman
Nov 8 at 9:24
add a comment |
OK. So what is your question? Did you try googling "vue ajax"?
– Daniel Roseman
Nov 8 at 9:24
OK. So what is your question? Did you try googling "vue ajax"?
– Daniel Roseman
Nov 8 at 9:24
OK. So what is your question? Did you try googling "vue ajax"?
– Daniel Roseman
Nov 8 at 9:24
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
There are 4 different ways of doing Ajax with Vue as described in this ARTICLE.
I dont fully understand it. Following is how you would do it using Jquery.
Javascript code :
$("#id1").blur(function() { //when field with id="id1" loses focus, Ajax happens
var email_entered = $(this).val();
$.ajax({
url: 'ajax/signup_email_verification/',
type: "POST", //needs csrf token
data: { email: email_entered,csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val(), },
dataType: 'json',
success: function (data) {
alert("Ajax successful");
},
error: function(error){
alert("Ajax error");
},
});
});
Django code:
def email_verification(request):
email=request.POST.get('email'); print('AJAX EMAIL = ',email)
data={ 'success':True }
return JsonResponse (data)
HERE are few preferred ways to do Ajax with plain JS or Jquery or Fetch or Axios.
add a comment |
up vote
0
down vote
Jquery and Vue dont work well together. Vue works inside Jquery but Jquery doesnt work inside Vue. Better option is to use Axios for Ajax.
Call axios inside Vue method.
axios.defaults.xsrfCookieName = 'csrftoken' //need this for method:post
axios.defaults.xsrfHeaderName = 'X-CSRFToken' //need this for method:post
var vue_app = new Vue({
el: '#id_xyz',
data: {
vue_var1:'hello',
vue_var2:,
},
methods:{
ajax_method_name1:function(){
console.log('Vue ajax_method_name1 is called');
axios({
method: 'post',
url: 'ajax/url1/',//your customer url that is set in backend to do Ajax work
data: {
axios_var1: this.vue_var1, //data to send to server
},
responseType: 'json', //server will response with this datatype
})
.then ( function (response){ //success function
console.log('axios ajax success. data returned ==' + response.data); //if returned data format is like {[ {'id':1,'id':2} ]} we may have to do response.data['output_dict'][0]['id']
this.vue_var2 = response.data['output_var'];
}.bind(this)) //bind(this) is required when accessing Vue variable inside Axios success function (.then)
.catch ( function (error){ //error function
console.log('Axios ajax error');
});
},
},
delimiters: ["[[","]]"],
});
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
There are 4 different ways of doing Ajax with Vue as described in this ARTICLE.
I dont fully understand it. Following is how you would do it using Jquery.
Javascript code :
$("#id1").blur(function() { //when field with id="id1" loses focus, Ajax happens
var email_entered = $(this).val();
$.ajax({
url: 'ajax/signup_email_verification/',
type: "POST", //needs csrf token
data: { email: email_entered,csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val(), },
dataType: 'json',
success: function (data) {
alert("Ajax successful");
},
error: function(error){
alert("Ajax error");
},
});
});
Django code:
def email_verification(request):
email=request.POST.get('email'); print('AJAX EMAIL = ',email)
data={ 'success':True }
return JsonResponse (data)
HERE are few preferred ways to do Ajax with plain JS or Jquery or Fetch or Axios.
add a comment |
up vote
0
down vote
There are 4 different ways of doing Ajax with Vue as described in this ARTICLE.
I dont fully understand it. Following is how you would do it using Jquery.
Javascript code :
$("#id1").blur(function() { //when field with id="id1" loses focus, Ajax happens
var email_entered = $(this).val();
$.ajax({
url: 'ajax/signup_email_verification/',
type: "POST", //needs csrf token
data: { email: email_entered,csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val(), },
dataType: 'json',
success: function (data) {
alert("Ajax successful");
},
error: function(error){
alert("Ajax error");
},
});
});
Django code:
def email_verification(request):
email=request.POST.get('email'); print('AJAX EMAIL = ',email)
data={ 'success':True }
return JsonResponse (data)
HERE are few preferred ways to do Ajax with plain JS or Jquery or Fetch or Axios.
add a comment |
up vote
0
down vote
up vote
0
down vote
There are 4 different ways of doing Ajax with Vue as described in this ARTICLE.
I dont fully understand it. Following is how you would do it using Jquery.
Javascript code :
$("#id1").blur(function() { //when field with id="id1" loses focus, Ajax happens
var email_entered = $(this).val();
$.ajax({
url: 'ajax/signup_email_verification/',
type: "POST", //needs csrf token
data: { email: email_entered,csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val(), },
dataType: 'json',
success: function (data) {
alert("Ajax successful");
},
error: function(error){
alert("Ajax error");
},
});
});
Django code:
def email_verification(request):
email=request.POST.get('email'); print('AJAX EMAIL = ',email)
data={ 'success':True }
return JsonResponse (data)
HERE are few preferred ways to do Ajax with plain JS or Jquery or Fetch or Axios.
There are 4 different ways of doing Ajax with Vue as described in this ARTICLE.
I dont fully understand it. Following is how you would do it using Jquery.
Javascript code :
$("#id1").blur(function() { //when field with id="id1" loses focus, Ajax happens
var email_entered = $(this).val();
$.ajax({
url: 'ajax/signup_email_verification/',
type: "POST", //needs csrf token
data: { email: email_entered,csrfmiddlewaretoken: $("input[name='csrfmiddlewaretoken']").val(), },
dataType: 'json',
success: function (data) {
alert("Ajax successful");
},
error: function(error){
alert("Ajax error");
},
});
});
Django code:
def email_verification(request):
email=request.POST.get('email'); print('AJAX EMAIL = ',email)
data={ 'success':True }
return JsonResponse (data)
HERE are few preferred ways to do Ajax with plain JS or Jquery or Fetch or Axios.
answered Nov 13 at 3:18
Aseem
653618
653618
add a comment |
add a comment |
up vote
0
down vote
Jquery and Vue dont work well together. Vue works inside Jquery but Jquery doesnt work inside Vue. Better option is to use Axios for Ajax.
Call axios inside Vue method.
axios.defaults.xsrfCookieName = 'csrftoken' //need this for method:post
axios.defaults.xsrfHeaderName = 'X-CSRFToken' //need this for method:post
var vue_app = new Vue({
el: '#id_xyz',
data: {
vue_var1:'hello',
vue_var2:,
},
methods:{
ajax_method_name1:function(){
console.log('Vue ajax_method_name1 is called');
axios({
method: 'post',
url: 'ajax/url1/',//your customer url that is set in backend to do Ajax work
data: {
axios_var1: this.vue_var1, //data to send to server
},
responseType: 'json', //server will response with this datatype
})
.then ( function (response){ //success function
console.log('axios ajax success. data returned ==' + response.data); //if returned data format is like {[ {'id':1,'id':2} ]} we may have to do response.data['output_dict'][0]['id']
this.vue_var2 = response.data['output_var'];
}.bind(this)) //bind(this) is required when accessing Vue variable inside Axios success function (.then)
.catch ( function (error){ //error function
console.log('Axios ajax error');
});
},
},
delimiters: ["[[","]]"],
});
add a comment |
up vote
0
down vote
Jquery and Vue dont work well together. Vue works inside Jquery but Jquery doesnt work inside Vue. Better option is to use Axios for Ajax.
Call axios inside Vue method.
axios.defaults.xsrfCookieName = 'csrftoken' //need this for method:post
axios.defaults.xsrfHeaderName = 'X-CSRFToken' //need this for method:post
var vue_app = new Vue({
el: '#id_xyz',
data: {
vue_var1:'hello',
vue_var2:,
},
methods:{
ajax_method_name1:function(){
console.log('Vue ajax_method_name1 is called');
axios({
method: 'post',
url: 'ajax/url1/',//your customer url that is set in backend to do Ajax work
data: {
axios_var1: this.vue_var1, //data to send to server
},
responseType: 'json', //server will response with this datatype
})
.then ( function (response){ //success function
console.log('axios ajax success. data returned ==' + response.data); //if returned data format is like {[ {'id':1,'id':2} ]} we may have to do response.data['output_dict'][0]['id']
this.vue_var2 = response.data['output_var'];
}.bind(this)) //bind(this) is required when accessing Vue variable inside Axios success function (.then)
.catch ( function (error){ //error function
console.log('Axios ajax error');
});
},
},
delimiters: ["[[","]]"],
});
add a comment |
up vote
0
down vote
up vote
0
down vote
Jquery and Vue dont work well together. Vue works inside Jquery but Jquery doesnt work inside Vue. Better option is to use Axios for Ajax.
Call axios inside Vue method.
axios.defaults.xsrfCookieName = 'csrftoken' //need this for method:post
axios.defaults.xsrfHeaderName = 'X-CSRFToken' //need this for method:post
var vue_app = new Vue({
el: '#id_xyz',
data: {
vue_var1:'hello',
vue_var2:,
},
methods:{
ajax_method_name1:function(){
console.log('Vue ajax_method_name1 is called');
axios({
method: 'post',
url: 'ajax/url1/',//your customer url that is set in backend to do Ajax work
data: {
axios_var1: this.vue_var1, //data to send to server
},
responseType: 'json', //server will response with this datatype
})
.then ( function (response){ //success function
console.log('axios ajax success. data returned ==' + response.data); //if returned data format is like {[ {'id':1,'id':2} ]} we may have to do response.data['output_dict'][0]['id']
this.vue_var2 = response.data['output_var'];
}.bind(this)) //bind(this) is required when accessing Vue variable inside Axios success function (.then)
.catch ( function (error){ //error function
console.log('Axios ajax error');
});
},
},
delimiters: ["[[","]]"],
});
Jquery and Vue dont work well together. Vue works inside Jquery but Jquery doesnt work inside Vue. Better option is to use Axios for Ajax.
Call axios inside Vue method.
axios.defaults.xsrfCookieName = 'csrftoken' //need this for method:post
axios.defaults.xsrfHeaderName = 'X-CSRFToken' //need this for method:post
var vue_app = new Vue({
el: '#id_xyz',
data: {
vue_var1:'hello',
vue_var2:,
},
methods:{
ajax_method_name1:function(){
console.log('Vue ajax_method_name1 is called');
axios({
method: 'post',
url: 'ajax/url1/',//your customer url that is set in backend to do Ajax work
data: {
axios_var1: this.vue_var1, //data to send to server
},
responseType: 'json', //server will response with this datatype
})
.then ( function (response){ //success function
console.log('axios ajax success. data returned ==' + response.data); //if returned data format is like {[ {'id':1,'id':2} ]} we may have to do response.data['output_dict'][0]['id']
this.vue_var2 = response.data['output_var'];
}.bind(this)) //bind(this) is required when accessing Vue variable inside Axios success function (.then)
.catch ( function (error){ //error function
console.log('Axios ajax error');
});
},
},
delimiters: ["[[","]]"],
});
answered Nov 27 at 23:12
Aseem
653618
653618
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53202544%2fhow-to-call-a-django-view-function-asynchronously-ajax-using-vue%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
OK. So what is your question? Did you try googling "vue ajax"?
– Daniel Roseman
Nov 8 at 9:24