Aha*_*ius 3 jquery encoding utf-8
我在json中得到了jQuery的响应.逻辑工作正常,但我不能让他正确编码数据(如üäö).
我搜索过并在SO上发现了这个问题,建议将其更改getJSON为正常的AJAX调用.我已经做到了,并添加了setContentType选项,但是,只要äüö出现,我就会得到奇怪的迹象.
关于如何解决这个问题的任何想法?
$(function() {
$("#cnAntragsteller").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://localhost/api",
dataType: "jsonp",
data: {
search: request.term
},
success: function(data) {
response($.map(data.persons, function(item) {
return {
label: item.cn + " (PN: " + item.imPersonalNumber + ")",
value: item.cn,
pn: item.imPersonalNumber,
cn: item.cn,
cc: item.imCostCenter,
jb: item.imJobTitle,
jbd: item.imJobTitleDescription
}
}));
}
});
},
minLength: 0,
select: function(event, ui) {
$("#pnAntragsteller").val(ui.item.pn);
$("#jbAntragsteller").val(ui.item.jb);
$("#jbdAntragsteller").val(ui.item.jbd);
$("#ouKostenstelle").val(ui.item.cc);
$.ajax({
url: "http://localhost/api",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: {
pn: ui.item.pn
},
success: function(data) {
$("#cnLeiter").val(data.cn);
}
});
}
})
})
Run Code Online (Sandbox Code Playgroud)
响应标头(第一个标头不显示数据,只是重定向到输出):
Content-Length:0
Date:Tue, 22 May 2012 06:13:41 GMT
Location:http://localhost/api/redirection
Server:Apache-Coyote/1.1
Content-Length:177
Content-Type:text/html
Date:Tue, 22 May 2012 06:13:41 GMT
Expires:0
Server:Apache-Coyote/1.1
Run Code Online (Sandbox Code Playgroud)
注意:这些只是响应标头,请求标头是否也包含重要信息?
虽然看起来你已经解决了这个问题,但最好指出两件事:
jQuery getJSON默认使用UTF-8.你给出的页面上接受的答案是,如果你想要一些非UTF-8的编码,你可以使用$.ajax().实际上,正如该页面上的另一个答案所说,即使您使用getJSON,您仍然可以使用$.ajaxSetup设置编码.
您可能希望将JSP标头contentType更改为'application/json; charset=utf-8',因为这是您的jQuery方面所期望的.使事情保持一致总是好的.
| 归档时间: |
|
| 查看次数: |
26303 次 |
| 最近记录: |