Ajax表单有时会被urlencoded

时间:2017-01-13 19:54:46

标签: php jquery urlencode

我有自己制作的票务系统,最近我发生了令人烦恼的事情。发生的事情是,有时在回复时,所有空格都被+号替换。到目前为止,它只发生在最近,只发生在某些消息上,所以不是全部。我还没有能够在消息中发现特殊情况或特征。

代码如下:

$(document).on('submit', '#newticket, #addreply', function () {
    $(".loadingadd").show();
    var eid = $(this).attr("id");
    var xform = $(this).serialize();
    $("#"+eid+" :input").prop("disabled", true);
    $.ajax({
        type: "POST",
        url: "/a/tickets",
        dataType: "json",
        data: xform,
        success: function(data) {

表格:

<form class="form-inline" role="form" action="" method="post" id="addreply">

我使用的是Firefox 50.1.0。

我无法在Firebug中捕获事件,所以服务器端有可能造成它,但我怀疑它是因为它不是每次都发生。

有谁知道浏览器是否可以决定对邮件进行urlencode?或者我应该始终在JS和解码服务器端编码?如果是这样,如何使用序列化?

How to encode value with jquery serialize?

我看到了这个,但我目前没有这个,但我有时只有+符号。并且没有替换删除有效+使用?

基本上我现在只是使用序列化来发送表单,并使用$ _POST [&#39; message&#39;]来获取内容,而不使用任何解码或编码。

或者我应该指定一个enctype?如果我阅读http://www.w3schools.com/tags/att_form_enctype.asp,那么在使用multipart / form-data时,+符号才会被替换?

任何人都知道这里有什么,我应该用什么表格,ajax编码和服务器端(php)解码?什么是最佳实践?

0 个答案:

没有答案