@Petr Mensik &kensen john
由于我不得不根据某些URL参数确定不同的内容类型,因此我无法使用该页指令。 我将在此重申我的准则,因为它与日本人有着相当共同之处:
<%
String callback = request.getParameter("callback");
response.setCharacterEncoding("UTF-8");
if (callback != null) {
// Equivalent to: <@page contentType="text/javascript" pageEncoding="UTF-8">
response.setContentType("text/javascript");
} else {
// Equivalent to: <@page contentType="application/json" pageEncoding="UTF-8">
response.setContentType("application/json");
}
[...]
String output = "";
if (callback != null) {
// IMPORTANT! Sanitise the "callback",
// do not use user input directly in the response!
// This is vulnerable to XSS attacks.
output += callback + "(";
}
output += jsonObj.toString();
if (callback != null) {
output += ");";
}
%>
<%=output %>
提供回响时,返回:
callback({...JSON stuff...});
内容类型“文字/文字”
当NOT供应时,返回:
{...JSON stuff...}
内容类型“应用/json”
[EDIT] I m 审查我的旧职位。 如果你利用这一解决办法,请你提供意见! 将用户投入直接用于应对措施,是危险的。