更新
看起来问题是当我从html开始读取值时。
这是标记:
<input name="someval" type="text" value="Receive (+ open)" />
我正在读取someval
这样的值并将其传递给ajax调用:
$.ajax({
data: 'someval=' + $("input[name=someval]").val(),
success: function(resp) {
$("#targetd").html(resp);
alert(resp);
}
});
当$("input[name=someval]").val()
与data: 'someval=' +
连接时,看起来问题就发生了,因为$("input[name=someval]").val()
中有+
。
旧
我正在对php脚本进行ajax调用,并且返回的响应包含html标记。我接受了这个回复并在那之后将它分配给一个div。
success: function(resp) {
$("#targetd").html(resp);
alert(resp);
}
返回的部分响应应该是这样的。 (请注意+
标志)
<input name="someval" type="text" value="Receive (+ open)" />
它工作正常,我可以将它分配给div,除了由于某种原因返回的标记缺少+
符号
<input name="someval" type="text" value="Receive ( open)" />
当php脚本本身输出标记时,它工作正常,但当标记通过ajax响应传递给页面时,+
消失。我没有对标记做任何特殊操作,正如上面的代码所示,我只是在它返回并将其分配给div时立即将其视为原样。当我直接提醒响应时,+
也会丢失,因此不仅仅是在将其分配给div时。不确定这里会发生什么。
答案 0 :(得分:1)
我建议尝试逃避你的加号+&amp;#43;看看是否能解决你的问题。如果是这样,它就是一个实体逃逸问题。
答案 1 :(得分:1)
您是否尝试过HTML编码响应?我在我的javascript中使用这些函数来编码/解码。
function HtmlEncode(value)
{
return $('<div/>').text(value).html();
}
function HtmlDecode(value)
{
return $('<div/>').html(value).text();
}