在向其他网址发出AJAX GET请求后,进行调用的原始网址也附加了GET查询。
使用以下代码,带有data =' a'的AJAX请求已成功进入网址
localhost:8000/ajax/search?query=a
以下是我的AJAX请求代码:
$.ajax({
type: "GET",
url: "/ajax/search",
data: {query: data},
dataType: "json",
success: function (a) {
console.log(a);
}
});
但是,在成功收到JsonResponse(我已经确认)之后,发出AJAX请求的原始页面的URL附加了GET数据。如何防止将get请求附加到原始URL?
以下是来自Django服务器的日志数据:
"GET /username/ HTTP/1.1" 200 2947
"GET /ajax/search?query=a HTTP/1.1" 200 96
"GET /username/?query=a HTTP/1.1" 200 2947
我希望在AJAX响应后我的URL为/ username /
答案 0 :(得分:1)
我希望点击页面中的某个按钮时有一些功能。在这种情况下, event.preventDefault();
$("#form").submit(function(event) {
event.preventDefault(); <------
$.ajax({
type: "GET",
url: "/ajax/search",
data: {query: data},
dataType: "json",
success: function (a) {
console.log(a);
}
});
});
答案 1 :(得分:0)
您可以使用此Jquery脚本从URL
中删除任何查询参数$(document).ready(function(){
if (window.location.href.indexOf('?') > -1) {
history.pushState('', document.title, window.location.pathname);
}
});
答案 2 :(得分:0)
使用window.history.pushState
https://developer.mozilla.org/en-US/docs/Web/API/History_API#Example_of_pushState()_method
$.ajax({
type: "GET",
url: "/ajax/search",
data: {query: data},
dataType: "json",
success: function (a) {
console.log(a);
if (window.location.href.indexOf('?') > -1) { # removes the params in URL if exists
window.history.pushState({}, document.title, window.location.pathname); # this is the magic
}
}
});