javascript - 在通过 ajax 发布到数据库时试图转义 URI。我究竟做错了什么?

标签 javascript html ajax escaping

我从图像标签中获取 src 属性,并通过 ajax 调用将其发布到我的数据库,然后用于形成 XML 文件。我真的需要转义这个图像路径并且似乎对如何做到这一点感到很困惑。尝试使用 encodeURIComponent 但运气不佳。下面是我的代码。感谢您的帮助!

$('.drag-elem').each(function () {
    var xml = '<clother><id>' + $(this).children('img').attr('class') + 
        '</id><title>' + $(this).children('img').attr('alt') + '</title><z-index>' +
        $(this).css('z-index') + '</z-index><top>' + $(this).css('top') + 
        '</top><left>' + $(this).css('left') + '</left><file>' + 
        encodeURIComponent($(this).children('img').attr('src')) +
        '</file></clother>';
});

最佳答案

您必须使用 encodeURI。因为 encodeURIComponent 不适合完整路径。


尝试使用 xml 编码函数 (encodeXml) 从 amps 中清除您的 xml:

var xml_special_to_escaped_one_map = {
'&': '&amp;',
'"': '&quot;',
'<': '&lt;',
'>': '&gt;'
};

var escaped_one_to_xml_special_map = {
'&amp;': '&',
'&quot;': '"',
'&lt;': '<',
'&gt;': '>'
};

function encodeXml(string) {
return string.replace(/([\&"<>])/g, function(str, item) {
return xml_special_to_escaped_one_map[item];
});
};

function decodeXml(string) {
return string.replace(/(&quot;|&lt;|&gt;|&amp;)/g,
function(str, item) {
return escaped_one_to_xml_special_map[item];
});
}

来自这里:http://dracoblue.net/dev/encodedecode-special-xml-characters-in-javascript/155/

关于javascript - 在通过 ajax 发布到数据库时试图转义 URI。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6821615/

相关文章:

javascript - 从 Cesium Display 加载和卸载 GeoJSON

javascript - 如何解析这样的 Json 列表并在 HTML 中显示其元素?

javascript - JQuery 计算器数据数字不工作|让 allclear 按钮工作

javascript - JS - 如何检测浏览器何时拒绝本地文件?

python - 使用 Jquery $.ajax 在 Flask 上调用服务器端函数

javascript - AJAX (JavaScript/PHP),FormData 不发送

jquery - 将数据拉入客户网站

JavaScript 将 HTML 类添加到 div。如果声明。 Bootstrap

javascript - 如何访问通过JavaScript函数传入的变量

javascript - 如果在 uib-tabset 中使用,则值不与范围的变量绑定(bind)