无法为我的婚礼设置网站。希望有人能在重大日子之前找出问题所在:)
以下代码正在我的开发机器上工作,但是一旦我将它发布到我的服务器,它就会执行回发,然后在执行GET请求后进行imediatly。不应该发生GET请求。
我有一些基本的设置代码
$.ajaxSetup({
beforeSend: function (xmlHttpRequest) {
//Used by the server to determine an async request
xmlHttpRequest.setRequestHeader('X-Requested-With', 'jQuery');
$.blockUI({ message: '<h3>Please wait...</h3>' });
},
complete: function (XMLHttpRequest, textStatus) {
$.unblockUI();
}
});
这是绑定到锚标记的代码。请注意,我也在按钮和输入元素上尝试了这个,没有运气。
$('.basket-btn').click(function (src) {
src.preventDefault();
var form = $(src.target).closest('form');
/* If the form contains validatable elements, then set this to false so the validation function is triggered. */
var doWeValidate = !form.find('span[id$=_validationMessage]').length > 0;
if (doWeValidate || !Sys.Mvc.FormContext.getValidationForForm(form[0]).validate('submit').length) {
var destination = $(src.target).attr('data-destination');
$.post(form.attr('action'), form.serialize(), function (data) {
$("#" + destination).html(data);
});
}
});
如果你想看到我正在谈论的问题,这是我的网站。
http://www.vinceandjeanswedding.com/GiftRegistry/
如果您输入金额并点击“贡献”,它将执行回发,然后(根据firebug)GET请求将会紧随其后。
请帮帮我。
答案 0 :(得分:1)
我解决了这个问题。
我注意到在firebug中,第一个请求总是返回 302 Object Moved 错误。
只需在我的所有请求上放置正斜杠就可以解决问题。
所以现在 www.site.com/Home/
而不是 www.site.com/Home答案 1 :(得分:0)
我看到它第一次正常工作(在Chrome中)。当数据返回时,您刷新表单中的所有内容。现在发生的事情是(新的)贡献按钮没有绑定到任何事件。
您想要更改以下内容
$('.basket-btn').click(function (src) {
到
$('.basket-btn').live('click', function (src) {
因此jQuery将捕获所有.basket-btn
个事件,即使它们是在第一个绑定之后添加的。
<强>更新强>
在Firefox中,错误会立即发生。
你有一些奇怪的事情在继续。你的ajax似乎确实有效。但是它再次在ajax(包括所有脚本引用)中加载整个页面,导致一段时间后发生一个巨大的循环(它越来越多地加载(#contributions * #contributions
次)脚本)。
答案 2 :(得分:0)
Just remove
cookieless="AutoDetect"
in your web.config file.