【发布时间】:2018-07-23 20:54:30
【问题描述】:
我正在尝试在一个页面上实现一个超链接,当单击该超链接时,它将首先通过 ajax 提交,运行一些检查以确定用户是否有权访问超链接页面,然后允许他们访问通过或阻止超链接的默认操作(并引发错误)。
我已经设置了代码,ajax 请求会通过,但不会在服务器端处理。
这是模板代码:
<a class='btn btn-primary pairing-CTA-btn' href="{% url 'profile:request' object.user %}">Send {{object.user | upper}} a Request</a>
js:
$(document).ready(function(){
var $myButton = $('.pairing-CTA-btn')
$myButton.click(function(event){
var $buttonData = $(this).serialize()
var $endpoint = $myButton.attr('data-url') || window.location.href // or set your own url
$.ajax({
method: "GET",
url: $endpoint,
data: $buttonData,
success: handleSuccess,
error: handleError,
})
})
function handleSuccess(data, textStatus, jqXHR){
// No need to do anything here. Allow link click.
console.log(data)
console.log(textStatus)
console.log(jqXHR)
}
function handleError(jqXHR, textStatus, errorThrown){
// on error, prevent default, bring up errors
event.preventDefault()
// $('.pairing-CTA-btn-errors').text("YOU SHALL NOT CLICK BUTTON");
// $('.pairing-CTA-btn-errors').show();
console.log(jqXHR)
console.log(textStatus)
console.log(errorThrown)
}
})
此链接所在的视图:
class ProfileDetailView(AjaxRequestButtonMixin, DetailView):
template_name = 'user_profile/profile_detail.html'
在将超链接点击连接到后端时,我缺少什么?
【问题讨论】:
标签: jquery ajax django django-templates django-views