我有一个测验类型的应用程序。每个问题都有两个答案,值为1或2.当测验完成后,如果他们的分数低于10,他们会被重定向到一个页面。
这是我这部分的代码。
while (n < numResults) {
increment = minScore + (interval * n);
if (totalScore <= increment) {
if(totalScore <= 10) {
$.ajax({
method: "POST",
url: "handleData.php",
dataType: "json",
data: { answers: ansArray, page: window.location.href }
})
.done(function( msg ) {
window.location.href("www.page2.html");
});
}
return;
} else {
n++;
}
}
我想解决一些问题。首先,在重定向之前,一些数据(答案和网址)会发布到PHP,以便我可以处理它。我传递的一件事是当前的窗口网址。我这样做的原因是因为 url的格式类似于
www.page1.com?a=1&b=2&c=3
在PHP中,我解析这个url并获取值。
我的第一个问题是虽然数据已成功发送到PHP并处理,并返回Success的响应,但似乎似乎没有触发done函数,因此没有重定向(我在此函数中发出警报) 确保它没有射击)。在PHP中,在我处理数据后,我这样做
var_dump($response); //Outputs Success
return json_encode($response);
我想解决的第二件事是重定向网址(page2.html)。在这个页面中,我有一个按钮。这个按钮有一个标准的链接,然后我需要从初始URL给它一些参数。 因此,此页面按钮可能类似于
www.externallink.com?a=1&c=2
如何将原始网址params放入重定向网址的按钮?
由于
答案 0 :(得分:1)
使用以下功能:
$.ajax({
method: "POST",
url: "handleData.php",
dataType: "json",
data: { answers: ansArray, page: window.location.href }
success:function(data){
window.location.href("www.page2.html");
});
})
答案 1 :(得分:0)
第1部分:
尝试使用jQuery ajax调用的错误函数。有时当返回类型的结果与ajax调用的预期数据类型不匹配时,结果会出现错误响应。
set
第二部分:
在处理程序中附加按钮的click事件,并使用 window.location.search 读取当前的URL查询字符串,然后使用
重定向error: function (data, status, e) {
}
答案 2 :(得分:0)
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax( "example.php" )
.done(function(data, textStatus, jqXHR) {
alert( "success" );
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert( "error" );
})
.always(function(data|jqXHR, textStatus, jqXHR|errorThrown) {
alert( "complete" );
});
如果您从未调用.done()
回调,请尝试在.fail()
或.complete()
回调函数中设置调试器或警报。检查在ajax调用期间是否有错误,如果调用具有完整语句则完全错误。
更多信息:http://api.jquery.com/jquery.ajax/