我有以下jQuery脚本:
$(document).ready(function() {
$("#resendActivationEmailLink").bind("click", function(event) {
$.get($(this).attr("href"), function() {
$("#emailNotActivated").html("<span>not yet activated. email sent!</span>");
});
event.preventDefault();
return false;
});
});
虽然ajax调用确实有效,但是没有调用get()函数的回调函数,即不调用此行:
$("#emailNotActivated").html("<span>not yet activated. email sent!</span>");
有人可以帮忙吗?
修改: 来自ajaxError的请求对象:
Object {readyState: 4, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
abort: function ( statusText ) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function ( key ) {
overrideMimeType: function ( type ) {
pipe: function ( /* fnDone, fnFail, fnProgress */ ) {
progress: function () {
promise: function ( obj ) {
readyState: 4
responseText: "dummy"
setRequestHeader: function ( name, value ) {
state: function () {
status: 200
statusCode: function ( map ) {
statusText: "OK"
success: function () {
then: function ( /* fnDone, fnFail, fnProgress */ ) {
__proto__: Object
编辑2:
输出来自:console.log($(this).attr('href'));
/bignibou/resendActivationEmail/235617cb-c19c-4694-ab9e-753e5d7QQde07
答案 0 :(得分:3)
$(document).ajaxError(function(event, request, settings) {
alert( "Error requesting page " + settings.url);
});
这会被触发吗?查看控制台中Ajax调用返回的内容。
因此错误响应显示4和200,所以这很好。下一个问题可能是解析。尝试设置数据类型,以便jQuery不会猜测和失败。
$.get($(this).attr("href"), function(){ ... }, "html")
如果有效,我打赌你的服务器端代码会返回错误的内容类型和响应。
答案 1 :(得分:0)
试试这个:
$.get($(this).attr("href"), function(data) {
if(data){
$("#emailNotActivated").html("<span>not yet activated. email sent!</span>");
}
});