我有一个带有一些文本和锚标记元素的变量,比如
var success_msg = 'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a> to save your wishlist.';
现在这个变量我传递给ajax,这条消息显示ajax成功时弹出窗口。
Ajax代码:
var success_msg = 'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a>+ to save your wishlist.';
$.ajax({
type: "POST",
url: BASE_URL+"home/featherlightInfo",
data: "success_msg="+success_msg,
success: function (html) {
$('#loading-div').hide(); // Hide Ajax loader
$('#featherlightInfoPop').html(html);
$.featherlight('#featherlightInfo');
setTimeout(function(){
$(".featherlight-close").trigger("click");
}, 5000);
$('#feathre').addClass('login-feathre');
}
});
Everythig工作正常,但在弹出式HTML中我得到这样的锚标记:
<a title="\"Login\"" class="\"login\"" id="\"popup-login\"" href="\"javascript:void(0);\"">login</a>`
奇怪的是,这段代码在我的本地服务器上工作得很好。
我想要这个结果:Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a> to save your wishlist.
那么如何才能获得正确的锚元素?
答案 0 :(得分:0)
尝试javascript的encodeURI
功能:
var success_msg = 'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a>+ to save your wishlist.';
var encode_msg = encodeURI(success_msg);
OR
您可以在ajax请求中传递标记消息,并在此基础上您可以在服务器端创建此'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a>+ to save your wishlist.';
HTML代码。这将是一个很好的做法。
答案 1 :(得分:0)
根据jquery ajax
:当您向服务器发送数据时,它将被转换为查询字符串,因此引号被转义。
data选项可以包含表单的查询字符串 key1 = value1&amp; key2 = value2,或{key1:&#39; value1&#39;形式的对象, key2:&#39; value2&#39;}。如果使用后一种形式,则转换数据 在发送之前使用jQuery.param()将查询字符串转换为查询字符串。这个 通过将processData设置为false可以避免处理。该 如果您希望发送XML对象,则可能不希望进行处理 服务器;在这种情况下,请更改contentType选项 application / x-www-form-urlencoded为更合适的MIME类型。