Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 数据中包含脚本标记的jQuery ajax调用_Asp.net_Jquery_Ajax - Fatal编程技术网

Asp.net 数据中包含脚本标记的jQuery ajax调用

Asp.net 数据中包含脚本标记的jQuery ajax调用,asp.net,jquery,ajax,Asp.net,Jquery,Ajax,我从文本框中读取一些值,并通过jQuerysPost方法将它们发送到服务器。如果用户输入包含“bla-bla”之类内容的文本,则调用失败。在这种情况下,数据如下所示: var data = { myKey: 'bla <script> bla' }; 在服务器端(Asp.NETWeb表单),调用似乎从未到达服务器。有什么提示可以解决这个问题吗?如果有一个方便的功能可以清除坏标签中的数据,那也没问题。您是否已取消激活您的aspx页面的验证请求 在页面声明中添加以下内容:validat

我从文本框中读取一些值,并通过jQuerysPost方法将它们发送到服务器。如果用户输入包含“bla-bla”之类内容的文本,则调用失败。在这种情况下,数据如下所示:

var data = { myKey: 'bla <script> bla' };

在服务器端(Asp.NETWeb表单),调用似乎从未到达服务器。有什么提示可以解决这个问题吗?如果有一个方便的功能可以清除坏标签中的数据,那也没问题。

您是否已取消激活您的aspx页面的验证请求


在页面声明中添加以下内容:
validateRequest=“false”

使用jQuery函数剥离标签:

jQuery.fn.stripTags = function() {
        return this.replaceWith( this.html().replace(/<\/?[^>]+>/gi, '') );
};
jQuery.fn.stripTags=function(){
返回this.replaceWith(this.html().replace(/]+>/gi');
};

您是否在ASP.NET中收到页面加载?如果是,Request.Params中没有任何内容吗?

我建议使用如下所示的javascript转义函数在客户端转义您的值

var data = { myKey: escape('bla <script> bla') };
我对此进行了测试,并通过post请求将正确的值正确地传递给服务器

希望这有帮助

附加信息:我忘了提到错误的原因。使用firebug检查请求时,它返回“500内部服务器错误-潜在危险的请求。从…检测到表单值。”。这是asp.net的内置保护机制,用于防止脚本注入。下面的页面指令ValidateRequest=“false”没有按预期解决问题(在传统的WebForms中有效)。这可能是Mvc平台特有的东西,不确定。上面的解决方案确实有效,所以请使用它

问候


G

要在MVC中使用ValidateRequest,您需要将指令添加到控制器或操作中
var data = { myKey: escape('bla <script> bla') };
HttpUtility.UrlDecode(param_value_to_decode)