Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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
Javascript 通过$post发送html数据失败_Javascript_Jquery_Html_Ajax_Http Post - Fatal编程技术网

Javascript 通过$post发送html数据失败

Javascript 通过$post发送html数据失败,javascript,jquery,html,ajax,http-post,Javascript,Jquery,Html,Ajax,Http Post,我正在使用下面的代码,这很好,但是当我试图将html片段发送到处理页面以将其保存为文件时,我什么也没有得到 我曾尝试使用ajax,将processData设置为html、文本和xml的虚假ads数据类型,但没有任何效果。我在这上面找不到任何东西,所以我想我一定错过了一些相当琐碎的东西,但我已经做了3个小时了 This works $.post("SaveFile.aspx", {f: "test4.htm", c: "This is a test"}, function(data){

我正在使用下面的代码,这很好,但是当我试图将html片段发送到处理页面以将其保存为文件时,我什么也没有得到

我曾尝试使用ajax,将processData设置为html、文本和xml的虚假ads数据类型,但没有任何效果。我在这上面找不到任何东西,所以我想我一定错过了一些相当琐碎的东西,但我已经做了3个小时了

This works
$.post("SaveFile.aspx", {f: "test4.htm", c: "This is a test"},
   function(data){
        alert(data);
   }, "text");  

This fails
$.post("SaveFile.aspx", {f: "test4.htm", c: "<h1>This is a test</h1>"},
   function(data){
        alert(data);
   }, "text");  
这很有效
$.post(“SaveFile.aspx”,{f:“test4.htm”,c:“这是一个测试”},
功能(数据){
警报(数据);
}“文本”);
这失败了
$.post(“SaveFile.aspx”,{f:“test4.htm”,c:“这是一个测试”},
功能(数据){
警报(数据);
}“文本”);
首先尝试值,如下所示

它可以按预期将xml发送到端点

var value = encodeURIComponent("<h1>This is a test</h1>");
$.post("SaveFile.aspx", {f: "test4.htm", c:value },
   function(data){
        alert(data);
   }, "text");
var value=encodeURIComponent(“这是一个测试”);
$.post(“SaveFile.aspx”,{f:“test4.htm”,c:value},
功能(数据){
警报(数据);
}“文本”);

如果服务器出现错误,将不会调用.post success函数。尝试使用.ajax并传递一个成功和错误函数

它认为您的错误来自asp.net中的ValidateRequest。如果要对所有页面执行此操作,则在没有对html进行html编码或禁用aspx页面的@page指令或web.config中的ValidateRequest参数的情况下,无法将普通html发送到asp.net页面


想了解更多关于asp.net的信息吗?Visit

我怀疑服务器上是否有错误,因为他基本上每次都将相同的输入传递到相同的位置,只是第二个位置中有一些标记。虽然我也怀疑,但更清楚地说,这是两个代码片段之间的唯一区别。你说失败是什么意思?浏览器错误控制台中是否有错误,是否调用回调。您在服务器日志中看到ajax调用了吗。或者尝试Sky Sanders建议的
c:encodeURIComponent(“这是一个测试”)
您使用Firefox吗?安装Firebug,您将能够准确地看到发送的内容和返回的内容。注意:禁用validateRequest可能是一个安全漏洞。因此,您最好使用HtmlConding并使用白名单来验证没有人发送脚本标记,因为这可能是一种潜在的xss攻击。