我使用一个工艺CMS网站一些简单的AJAX页面过渡,非常相似,这些指令:https://designbycosmic.com/journal/craft-cms-ajax-page-transitions-with-history-pushstateAJAX网址后返回400(错误的请求)
我的代码的基本结构是这样的:
$.ajax({
type: 'POST',
url: href,
data: {},
success: function(result){
// hide old content, load new content, fade in new content
},
error: function(){
console.log("ajax error");
}
});
“href”是加载新页面的链接。
我总是得到400(错误请求)错误。
我使用这个完全相同的方法在一个类似的网站上完全相同的托管环境,它工作正常,所以我敲我的头,为什么这将是不同的行事。
有关此主题的所有其他答案似乎都适用于“数据”格式不正确的情况,但在您仅仅加载网址时没有解决问题,没有其他数据。
在这种情况下,什么会导致400错误?这里
UPDATE
OK是对任何人的现场直播是谁还跟进一步帮助调查:http://mearch.nz/
还是很完整,正在开发中。您应该能够在“主页”,“项目”和“项目”索引中链接的任何项目详细信息页面之间导航。您会看到加载指示符只是停留在那里,并且新页面不会到达,因为AJAX失败。
如果你重新加载任何这些页面,他们工作得很好。网址没有任何问题。出于某种原因,它只是不被接受为AJAX POST的正确数据。
现在作比较,这里是相同的虚拟主机上的其他网站,使用相同的AJAX功能,和同一个CMS,它工作正常:http://benek.nz/
你您是否正在执行POST请求但未发送任何数据?您是否检查过Chrome DevTools以查看响应中是否包含任何其他信息? –
您得到400响应的原因是因为**服务器**表示请求是坏的(因此是错误的请求) - 客户端代码很少会告诉你为什么服务器正在响应 - 你需要修复服务器,或者如果你不控制服务器,你需要了解服务器的期望,并让你的请求符合服务器要求@JaromandaX的回忆 –
这就是为什么这对我来说如此令人沮丧。它与另一个具有几乎完全相同的代码的网站位于同一服务器环境中,并且工作正常所以据我所知这应该是服务器的期望。 –