POST是HTTP协议方法之一;当客户端需要将数据发送到服务器时(例如上载文件或提交完成的表单)时使用它。
尝试使用 HTTP POST 请求将图像从 Flutter 应用程序发送到 python Flask 项目,但服务器日志未记录任何发出的 POST 请求。 Flutter 客户端代码是 maki...
我将这个简单的测试页面保存为page1.html。 <p>我将这个简单的测试页面保存为 page1.html。</p> <pre><code><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <script type="text/javascript"> function submitForm() { alert(escape(document.myform.mytextarea.value)); return true; } </script> </head> <body> <form name="myform" action="page2.html" method="post" onsubmit="javascript:return submitForm();"> <textarea name="mytextarea">xxxyyy</textarea> <input type="submit" value="submitForm"> </form> </body> </html> </code></pre> <p>此页面保存为page2.html。</p> <pre><code><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <body> Page2.html </body> </html> </code></pre> <p>我在Firefox下打开page1.html(我认为版本并不重要,但它是18.0。Chrome或IE 10.0也有同样的问题)。 在单击“提交表单”按钮之前,我在值“xxx”和“yyy”之间按一下 ENTER,如下所示。</p> <p><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL1FVOXJaLnBuZw==" alt="HTML Form"/></p> <p>当我单击“提交表单”按钮时,警报会显示“xxx”和“yyy”之间的一个字符,这是 编码为“%0A”。 </p> <p><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tLzhKbGJmLnBuZw==" alt="Javascript Alert"/></p> <p>如果我查看 Firebug 发布的内容,我可以看到两个字符“ ”编码为“%0D%0A”。</p> <p><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL0xaUEIzLnBuZw==" alt="Firebug POST"/></p> <p>你能解释一下为什么吗 变换为 关于 POST 以及如何防止这种情况? 我最小化了我的问题,但这对我来说确实是个问题。</p> <p>我可以在 MAC OS 上的 Safari 下测试这个,并且我还在 POST 上得到 %0D%0A。</p> <p>在 IE 8.0 及之前版本中,Javascript 会发出 %0D%0A 警报,并且我在 POST 时收到 %0D%0A,因此 IE 8.0 及之前版本的行为不一样。</p> </question> <answer tick="false" vote="2"> <h2>解决方案1:</h2> <p>在 C# 中:</p> <pre><code>string value = Request.Params["txtValue"].replace("\r\n","\n"); </code></pre> <h2>解决方案2:</h2> <p>或者您可以添加隐藏字段,例如:</p> <pre><code><input id="txtValue" type="textarea" /> <input id="hiddenTxtValue" type="hidden"/> </code></pre> <p>并用 <pre><code>encodeUriComponent</code></pre>:</p> 设置他的值 <pre><code>$('#hiddenTxtValue').val(encodeUriComponent($('#txtValue').val())); </code></pre> <p>在 C# 中:</p> <pre><code>string value = Request.Params["hiddenTxtValue"]; </code></pre> </answer> <answer tick="false" vote="1"> <p>不同操作系统对换行符的处理方式不同。</p> <p> = CR(回车) // 在 Unix 中用作换行符</p> <p> = LF(换行) // 在 Mac OS 中用作换行符</p> <p> = CR + LF // 在 Windows 中用作换行符</p> <p>就文本区域的数据而言。提交表单后,文本区域内容将按照 <a href="http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2.1" rel="nofollow noreferrer">HTML 规范</a>:</p> 进行 url 编码 <blockquote> <p>换行符,如多行文本字段值中的那样,表示为 CR LF 对,即“%0D%0A”。</p> </blockquote> <p>我发现了一个相关的 <a href="https://stackoverflow.com/questions/14217101/what-character-represents-a-new-line-in-a-text-area">SO Question</a>,它解决了换行符和跨平台兼容性方面的类似问题。</p> <p>就您的问题而言,如果您希望统一处理新行,您可以在文本区域的内容中进行简单的正则表达式替换来解决差异。</p> </answer> <answer tick="false" vote="1"> <p>感谢您的信息,我编写了这个函数来计算任何浏览器上我的文本区域的“提交”长度:</p> <pre><code>function getFormURLEncodedLength(myValue) { return myValue.replace(/(\r\n|\n|\r)/g, '\r\n').length; } </code></pre> </answer> <answer tick="false" vote="0"> <p>正如@vivek-pradhan 在<a href="https://stackoverflow.com/a/21404873/2710165">他的回答</a>中提到的,默认情况下,表单数据在发送到服务器之前被编码为<pre><code>application/x-www-form-urlencoded</code></pre>。换行符转换为 <strong>CR LF( )</strong>.</p> <p>如果您使用 <pre><code>multipart/form-data</code></pre>,<a href="https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data#:%7E:text=the%20overhead%20of%20adding%20all%20of%20the%20MIME%20headers%20is%20going%20to%20significantly%20outweigh%20any%20savings%20from%20more%20efficient%20binary%20encoding">“添加所有 MIME 标头的开销将大大超过更高效的二进制编码所节省的任何费用”</a></p> <p>如果您要在服务器上验证<strong>准确的字符串</strong>,最好将数据字符串化为 JSON 字符串并使用 <strong><pre><code>application/json</code></pre></strong> 编码发送,以保留准确的数据。</p> </answer> </body></html>
我被要求在asp.net中创建一个页面,该页面从用户那里获取Windows登录信息,连接到活动目录并获取员工信息。之后,我必须注册 Int...
.NET core 中输入复杂时选择 HttpGet 和 HttpPost
在.net core web API中, 端点:http://localhost:4200/api/GetUsersByName 输入:{“name”:“test”,“pageSize”:10,“pageNo”:1} API 会搜索所有用户
我需要获取OAuth 2.0的access_token和refresh_token来访问Google API,下面的php脚本应该返回一个带有access_token、refresh_token的json,如下所示: { “access_token”:“###...
我们正在尝试对谷歌商家工具进行提要刷新。 连接和发送工作完美,我们只是在发送 POST 而不是标准 GET 方法时遇到问题 ... 我们正在使用类...
我已经使用asp.net core 5的默认Web api模板代码创建了一个项目 net5.0 然后我在
POST请求响应422错误{'detail': [{'loc': ['body'], 'msg': 'value不是有效的dict', 'type': 'type_error.dict'}]}
即使正在发送有效的 JSON,我的 POST 请求仍然失败并返回 422 响应。我正在尝试创建一个网络应用程序,该应用程序接收上传的带有各种遗传标记的文本文件并发送...
如何在Django中使用HTTP POST请求接收json数据?
我想使用 HTTP POST 请求发布一些 JSON 并在 Django 中接收此数据。 我尝试使用 request.POST['data']、request.raw_post_data、request.body 但没有一个对我有用。 我的views.py是:
使用 MSXML2.XMLHTTP 将二进制文件发送到 PHP,无需 Base64 编码
我正在尝试弄清楚如何使用 multipart/form-data 发送二进制文件,但不使用 base64 对其进行编码以节省一些大小。 POST 请求是手动构建的并馈送到 MSX...
我正忙于了解 swagger.json 规范的工作原理(在我的例子中是 api.json)。在研究过程中,我可以找到许多关于如何处理 GET 请求的示例,但没有找到 POST 或
Web API 中的读取 POST 请求正文正在向 ' ' 添加额外的斜杠
我们有一个要求,对于某个休息调用,我们需要在将请求发送到控制器之前拦截请求并向请求正文添加一些内容。我可以使用
从 Angular 前端发送 post 请求后,空参数被传递到 API 控制器
我在后台开发了登录功能 [路线(“api/”)] [API控制器] 公共类 LoginController : ControllerBase { 私有只读 ILoginService _loginService; 公开
在 Blazor 8 Pages 中使用 POST 从 Web Share API 接收共享数据并将请求 formData 绑定到参数中
我有一个 PWA Web 应用程序,以前仅在 ASPNet Core MVC 中使用,现在我将其转换为 Blazor 8。 我正在使用通过 Web Share API 在应用程序外部调用的共享数据....
Mulesoft - 我想发送一封带有已发布到我的 API 端点的附件的电子邮件
使用 Mule 4.x,我希望使用 HTTP POST 方法端点设置我的 API,该端点允许用户发布包含文件的表单数据。 然后我想获取该文件,并通过电子邮件将其发送给...
我正在发出 POST 请求来抓取一些数据,但遇到了一个问题:系统错误无效。虽然我不确定该错误是由机器人管理系统引起的,但我...
我想使用这个网站完成的计算:http://www.isewase.de/dwz/。 因此,我在网站本身输入数据时检查了 POST 请求,例如: dwz_名称:1000-100 年龄:1990
当我在 AWS API 网关中使用 HTTP post 发布 JSON 负载时,出现 500 个内部服务器错误
我在尝试将 JSON 负载发布到 IoT Core 时遇到问题。我收到 500 内部服务器错误。 API 网关似乎配置正确,因为它正在到达 Lam...
Webhook 据说是推送式通信,使应用程序能够将数据推送到另一个应用程序。 通过 HTTP POST/PUT,我们还可以将数据发送到另一个应用程序。 那么两个差异如何...