代码之家  ›  专栏  ›  技术社区  ›  cypher

如何在jQuery的POST请求中转义?

  •  9
  • cypher  · 技术社区  · 14 年前

    <input type="checkbox" value="Biografie, životopisy, osudy, Domácí rock&amp;pop" />
    

    当我尝试通过ajax请求发送它时:

    $.ajax({
        type: "POST",
        url: "/admin/kategorie/add/link.json",
        data: "id="+id+"&value="+value+"&type="+type,
        error: function(){alert('Chyba! Reloadněte prosím stránku.');}
    });
    

    id: 1
    pop:
    type: e
    value: Biografie, životopisy, osudy, Domácí rock
    

    *请注意,数据中的所有变量都已定义,value包含$(thatInputElement).attr('value')。

    我怎样才能逃过这场灾难 &amp; value 将包含 Biografie, životopisy, osudy, Domácí rock&amp;pop ?

    5 回复  |  直到 14 年前
        1
  •  26
  •   Nick Craver    14 年前

    你可以设置你的 data

    $.ajax({
      type: "POST",
      url: "/admin/kategorie/add/link.json",
      data: { id: id, value: value, type: type },
      error: function(){ alert('Chyba! Reloadněte prosím stránku.'); }
    });
    

    可以 encodeURIComponent()

    encodeURIComponent(value)
    

        2
  •  2
  •   John Fisher    14 年前

    你试过这种语法吗?

     data: {"id":id, "value": value, "type": type }
    
        3
  •  0
  •   David    14 年前

        4
  •  0
  •   EAMann    14 年前

    将HTML字符代码用于&改为:\u0026

        5
  •  0
  •   joshtronic    14 年前

    您可以创建一个对象并传递它:

    vars = new Object();
    vars.id = id;
    vars.value = value;
    vars.type = type;
    
    $.ajax({
      type: "POST",
      url: "/admin/kategorie/add/link.json",
      data: vars,
      error: function(){ alert('Chyba! Reloadněte prosím stránku.'); }
    });
    
        6
  •  0
  •   Ihsan    5 年前

    您可以替换;在客户端使用{和},然后将{和}替换为&服务器端