我正在做一个简单的$ .ajax请求:
$.ajax({
type: "POST",
url: "/Run/" + param1 + "/" + param2,
dataType: 'html',
error: function(error) {
},
success: function(html) {
}
});
如果我的 param2 值类似于 http://localhost/pub/file?val1=Some文字& val2 =某些文字 ,那么编码使用 escape(param2),encodeURI(param2),encodeURIComponent(param2)完成没有帮助。我得到了ERROR - >
HTTP错误400.0 - 错误请求 ASP.NET在URL中检测到无效字符
我的问题 - >
Ajax.actionLink的好处 - >
请使用 Ajax.ActionLink (这是我的观察)查看传递给操作的参数 categoryName 的长度
答案 0 :(得分:3)
这些大参数应该张贴,不会在网址中发送。
$.ajax({
type: 'POST',
url: '/Run',
data: { param1: param1, param2: param2 },
dataType: 'html',
error: function(error) {
},
success: function(html) {
}
});
这将自动处理参数编码。如果你绝对坚持在网址中发送它们,你可以声明一个全局的javascript变量来保存要调用的URL:
<script type="text/javascript">
var url = '<%= Url.Action("Run"), new { param1 = "value1", param2 = "value2" } %>';
$(function() {
$.ajax({
type: 'POST',
url: url,
dataType: 'html',
error: function(error) {
},
success: function(html) {
}
});
});
</script>