首页 > 解决方案 > 删除或转义双引号

问题描述

我正在尝试将项目存储在 localStorage 中;这是我的功能:

function AddToCart(varer) {

    var users = JSON.parse(localStorage.getItem("users") || "[]");
    users.push(varer);
    console.log(varer);

    localStorage.setItem("users", JSON.stringify(users));
}

结果将在应用程序选项卡下:

图片

然后我尝试通过 localStorage 循环并将数据发送到控制器:

    var holderHTML = '';
    var params = "";
    var seperator = "";
    var info = JSON.parse(localStorage.getItem("users"));

        for (var i = 0; i < info.length; i++) {
            var Val = info[i];
            var key = JSON.stringify(Val)

            params += seperator + "items=" + key;
            seperator = "&";               
        }

        $.ajax({
            type: "GET",
            url: "/User/serializeItemsLine",
            data: params,
            dataType: 'json',
            success: function (values) {

                console.log(values);

            }

         })

但我试图发送的数据包含双引号(解码 %22),因此我的操作无法检索数据:

Request URL: http://localhost:xxxx/User/serializeItemsLine?items=%22ae90ac1a-64c4-49a7-b588-ae6b69a37d47%22&items=%223e58aa74-4585-4bee-b2e0-ed39a1d95442%22

查询字符串参数:

items: "ae90ac1a-64c4-49a7-b588-ae6b69a37d47"
items: "3e58aa74-4585-4bee-b2e0-ed39a1d95442"

解码结果:

items: %22ae90ac1a-64c4-49a7-b588-ae6b69a37d47%22
items: %223e58aa74-4585-4bee-b2e0-ed39a1d95442%22

行动:

[HttpGet]
public string serializeItemsLine(Guid[] items) {

}

标签: javascriptjsonasp.net-mvcquery-string

解决方案


尝试这样做:+ "items=" + Val.

没有必要在这里打电话JSON.stringify()。您的 API 不期望 JSON,因此您不应该提供 JSON。


推荐阅读