Jquery ajax调用'+'符号

0pl*_*us1 12 javascript php ajax jquery post

$.ajax({  
        type: "POST", url: baseURL+"sys/formTipi_azioni",data:"az_tipo="+azione,
        beforeSend: function(){$("#form").html('<p><img src="'+baseURL+'lib/img/ajax-loader.gif" width="16" height="16" alt="loading" /><p>');},
        success: function(html){$("#form").html(html);}  
     });
Run Code Online (Sandbox Code Playgroud)

有一种情况,azione是

TB+ 
Run Code Online (Sandbox Code Playgroud)

加号根本没有发布,发送空白区域.我已经尝试过了:

azione = escape(String(azione));
Run Code Online (Sandbox Code Playgroud)

没有运气.有谁知道如何解决这个问题?

oez*_*ezi 16

azione = escape(String(azione));
Run Code Online (Sandbox Code Playgroud)

应该

azione = encodeURIComponent(String(azione));
Run Code Online (Sandbox Code Playgroud)

或者干脆

azione = encodeURIComponent(azione);
Run Code Online (Sandbox Code Playgroud)

  • 类型转换不像JS中那样工作...(`(String)azione`) (3认同)

Dar*_*rov 14

试试这个:

$.ajax({  
    type: "POST", 
    url: baseURL + "sys/formTipi_azioni",
    data: { az_tipo: azione },
    beforeSend: function(){
        $("#form").html('<p><img src="'+baseURL+'lib/img/ajax-loader.gif" width="16" height="16" alt="loading" /><p>');
    },
    success: function(html){
        $("#form").html(html);
    }  
});
Run Code Online (Sandbox Code Playgroud)

并让jQuery为你做url编码.


Tom*_*lak 9

千万不要使用escape().使用encodeURIComponent().


Vot*_*ple 6

你也可以让jQuery通过传递一个对象来完成工作,而不是试图自己编写post数据:

$.ajax({  
    type: "POST", url: baseURL+"sys/formTipi_azioni",
    data: {az_tipo: azione},
    beforeSend: function(){$("#form").html('<p><img src="'+baseURL+'lib/img/ajax-loader.gif" width="16" height="16" alt="loading" /><p>');},
    success: function(html){$("#form").html(html);}  
 });
Run Code Online (Sandbox Code Playgroud)