0

我有以下 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 
4

2 回答 2

3

设置错误处理程序

$(document).ajaxError(function(event, request, settings) {
    alert( "Error requesting page " + settings.url);
});

这会触发吗?在控制台中查看 Ajax 调用中返回的内容。

  • 编辑 -

所以错误响应显示 4 和 200,这很好。下一个问题可能是解析。尝试设置数据类型,这样 jQuery 就不会猜测和失败。

$.get($(this).attr("href"), function(){ ... }, "html")

如果可行,我打赌您的服务器端代码将返回错误的内容类型和响应。

于 2013-02-21T17:54:05.323 回答
0

试试这个:

$.get($(this).attr("href"), function(data) {
  if(data){
    $("#emailNotActivated").html("<span>not yet activated. email sent!</span>");
  }
});
于 2013-02-21T18:03:20.427 回答