2011-11-17 57 views
1

为什么此脚本在Firefox和Chrome中运行得非常好,但在IE中却不行?我使用的是IE8,并且它始终返回-1。它似乎也没有被缓存。另外ajaxurl不是跨域,页面在同一个域中。使用IE时来自Ajax调用的错误响应

jQuery('#btnqqf').click(function(e){ 
    e.preventDefault();    


    jQuery.ajaxSetup({cache: false, timeout: (300*1000)}); 
    var data = {action: 'qqf_action', txtName: jQuery('#txtName').val()}; 

    var d = new Date(); 
    jQuery.post(ajaxurl + '?nocache=' + d.getTime(), data, function(response) { 
    alert(response);    

}); 
});  
+0

我相信txtName应该是jQuer Y( '#txtName的')VAL(); –

+0

您是否尝试在您的ajaxSetup中添加'dataType:'json''(如果它是json) – alinn

+0

没有设置dataType的运气。我试过json,text,xml,html等。脚本只返回一个字符串。 – SirM

回答

0

此:

add_action('wp_ajax_no_priv_qqf_action', 'qqf_action_callback');` 

应该是:

add_action('wp_ajax_nopriv_qqf_action', 'qqf_action_callback'); 
0

也许IE不设置所需的MIME类型或其他一些标题..尝试通过处理所有事件调试它:

jQuery.post(ajaxurl + '?nocache=' + d.getTime(), data) 
    .success(function(response) { 
     alert("success! " + response); 
    }) 
    .error(function() { 
     alert("error"); 
    }) 
    .complete(function() { 
     alert("complete"); 
    });