当我尝试从ajax请求中获取html时,我得到多个 。这是为什么以及如何纠正它?
$.ajax
({
type: 'POST',
url: Generic.ajaxSluice,
dataType: "html",
data:
{
param: paramArr
},
success:function(response)
{
console.log(response);
}
});
此代码在控制台中给出了我的响应:
[[” ... 0“,”../upload/images/Untitled-2.png“],[”1“,”../ upload / images / j.png“],[”2“,”。 ./upload/images/peppe.png“],[” “]]
答案 0 :(得分:1)
AJAX需要UTF-8。它甚至不是可选的。从jQuery.ajax()手册页:
W3C XMLHttpRequest规范规定了charset是 总是UTF-8;指定另一个字符集不会强制浏览器 改变编码
因此,您的服务器端代码需要读写UTF-8。周期。
验证服务器是否生成UTF-8的一种方法是键入已知的char(我经常使用€
符号)并查看是否获得了预期的字节(E2 82 AC
)。要获得十六进制转储:
e282ac
%E2%82%AC
如果你碰巧看到很多零,你会以某种方式获得null characters。这是一个不可打印的控制代码,只应出现在二进制文件中(永远不会出现在文本中)。这揭示了一个不同的问题。