克服.Net 4“安全性”修复传递字符代码而不是文字 (jquery/mvc)
我通过 Jquery Ajax 调用返回一些部分视图。当它返回时(我正在传回一些 javascript,无论好坏),单引号 - ' 符号将像下面一样返回(如 fiddler 所示):
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
因此,当然返回的 javascript 格式错误,不能被叫。
仔细研究一下,这显然是 .net v4 中的“安全”更新,以避免 xss 攻击。该论坛基本上说这是个坏消息,并建议覆盖默认的 HTML 编码类。我尝试过这个但没有运气。
对于删除这个烦人的功能有什么建议吗?
I'm returning some partial views via Jquery Ajax calls. When it returns (some javascript I'm passing back, for better or worse), the single quotes - ' symbols, are returned like the below (as viewed by fiddler):
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
So of course the javascript returned is malformed and can't be called.
Looking into this, it's apparently a 'security' update in .net v4 to avoid xss attacks. That forum basically says that it is bad news, and suggests overriding the default HTML encoding class. I tried this with no luck.
Any suggestions for removing this annoying functionality?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您要返回的实际部分视图,您可以将 javascript 部分包装在
@Html.Raw(javascript)
中,这样它就不会被编码。If it is an actual partial view you are returning, you could wrap you javascript part in a
@Html.Raw(javascript)
so it does not get encoded.