传递与传播(&符号)在AJAX / JSON中

时间:2017-02-02 15:18:30

标签: javascript json

我现在已经搜索了2个小时但是还没找到解决办法。

我的目标是发送一封包含订单跟踪链接的电子邮件。

一切正常,只是链接被切断了& char是..

我尝试过使用差异编码和解码但几个小时后我就被困住了..

因此,我很乐意为您提供编码大师的帮助..

注意:在粘贴的代码中有一些部分,主要是底部,可能不需要回答问题,但我仍然粘贴它们,以防它们需要。

我的代码:

var snr = parentTR.find('.comment').val();

var tracklink = 'http://www.silversmurfen.se/?route=common/track&nr=' + snr;
var kommentar = 'Din order är nu skickad. Du har sändningsnummer ' + snr + '. Du kan spåra ditt paket genom följande länk: ' + tracklink;



var namn = parentTR.find('.nameclass').html();
var id = parentTD.attr("id");

if (true == true) { // ÄNDRA FÖRSTA TRUE TILL "knappval" OM DU VILL HA POPUP BEKRÄFTELSE PÅ KNAPPTRYCK.

    $.ajax({
        url: '<?php echo $catalog; ?>index.php?route=api/order/history&token=' + token + '&store_id=0&order_id=' + id,

        type: 'post',
        dataType: 'json',
        data: 'order_status_id=' + 10 + '&notify=' + 1 + '&override=' + 0 + '&append=' + 0 + '&comment=' + kommentar,
        beforeSend: function() {
            parentTD.find('.betald_knapp').button('loading');
        },
        complete: function() {
            parentTD.find('.betald_knapp').button('reset');
        },
        success: function(json) {
            $('.alert').remove();

            if (json['error']) {
                $('#history').before('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
            }

            if (json['success']) {
                parentTR.find('.nameclass').html("<b>" + namn + "</b>");
                parentTR.find('.statusclass').html("<b>Skickad</b>");
            }
        },
        error: function(xhr, ajaxOptions, thrownError) {

            alert(thrownError + "\r\n" + xhr.statusText + "\r\n\n" + xhr.responseText);
        }
    });

先谢谢你们!

1 个答案:

答案 0 :(得分:0)

encodeURIComponent函数会将字符串中的特殊字符转换为表单数据和查询字符串格式。

也就是说,因为你使用的是jQuery,所以不要手工生成字符串。将对象传递给data并让jQuery为您编码。

data: {
    order_status_id: 10,
    notify: 1,
    override: 0,
    append: 0,
    comment: kommentar
},