我在带有清漆的服务器上运行了一个AJAX请求。请求如下:
(function() {
$("#name").autocomplete({
minLength:3, //minimum length of characters for type ahead to begin
source: function (request, response) {
$.ajax({
type: 'GET',
url: php_vars.var_1, //your server side script
dataType: 'json',
data: {
postcode: request.term
},
success: function (data) {
alert("Success");
}
});
}
});
})();
对于url,我使用wp_localize_scripts和数组与php脚本的绝对URL。我在这个脚本之前安慰了这个url,没关系。
我在没有运行清漆的服务器上进行此设置,并且工作正常。但是在我的带有清漆的服务器上,我注意到请求URL不正确(应该是“auspost.php”,而是带有查询参数的页面URL)。在我的无清漆服务器上,GET请求网址是正确的。
看起来清漆正在缓存我的GET请求。任何建议将非常感谢!如果需要,我可以粘贴我的vcl配置吗?
答案 0 :(得分:1)
For ajax requests you should have the following header available X-Reqeusted-With: XMLHttpRequest
In your varnish vcl_recv you can check if this header is present and force a pass.
if (req.http.X-Requested-With == "XMLHttpRequest"){
return (pass);
}