我有一个像“£300 ON 110406”这样的字符串,我正在向用户显示。以下是被触发到从数据库返回数据的弹簧控制器的 Ajax:-
数据库值通过单独的 Product 推送,因此无法更改任何内容。
$.ajax({
header:{
Accept:"*/*",
"Mime-Type":"application/x-javascript;charset=iso-8859-15"
},
type: "POST",
cache: false,
dataType:'json',
url: ctx + "/url.htm",
data: str,
beforeSend: function(jqXHR) {
if(jqXHR && jqXHR.overrideMimeType) {
jqXHR.overrideMimeType('application/x-javascript;charset=iso-8859-15');
}
},
以前上面的字符串在 FIreFox 和 Chrome 上也不能正常运行,但是在我添加了“beforeSend”方法之后,现在它们正常了。
但 IE 仍然给出 BOX 字符。
上面的 Ajax 代码我在谷歌搜索了大多数可用于类似问题的问题后进行了修改。
我的页面如下所示:-
<%@ page language="java" contentType="text/html; charset=iso-8859-15"
pageEncoding="iso-8859-15"%>
<% request.setCharacterEncoding("iso-8859-15"); %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
在我的另一页上,我显示相同的值,但使用的是 Scriptlet,所以没有问题。
我的 spring 控制器方法的签名:- 如果我将产品添加到此方法中,我会得到“无法在浏览器控制台中找到演示文稿”
@SuppressWarnings("unchecked")
@RequestMapping(value = "/url", method = RequestMethod.POST)
private @ResponseBody
String getFilteredData(
jQuery版本是1.11
我一直在 IE 中尝试此操作,但它不起作用.. 下面是 IE 浏览器的屏幕截图,用于显示 Accept 和 content-type。
如果我在 Ajax 中更改内容类型,那么它会向控制器发送数据。
你能告诉我,如何解决这个问题。