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>");

誰でも助けてもらえますか?

EDIT : 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 に答える