所有数据都应该通过 HTTP-POST 发送吗?

发布于 2024-11-24 21:11:22 字数 134 浏览 1 评论 0原文

我有一些 jQuery 将数据发送到 AddComment.php 页面。数据是用户ID(可以通过会话获取)、项目ID和文本形式的评论。

在这种情况下,所有数据都应该通过 POST 发送吗?是否存在 GET 和 POST 混合使用的情况?

I have some jQuery that sends data to a AddComment.php page. The data is a user id (could be gotten through a session), an item id and a comment under text form.

In this case, should all data be sent through a POST? Are there cases where one might find a mix of GET and POST?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

何以畏孤独 2024-12-01 21:11:23

请阅读 RFC 2616。

其中有与 GET 和 POST 相关的非常具体的语义,它们对缓存和日志记录有很大影响。

在您的示例中,要添加的数据应在 POST 中发送。是否应通过 POST 或 GET 变量发送对所评论项目的引用是有争议的。 (您可以使用查询字符串 POST 到 URL,并且任何有能力的 Web 语言都应该能够区分通过这两种方法发送的相同变量名称)

何时应混合使用 GET 和 POST 的一个更透明的示例是 POST 到前端时 -控制器 - 这里相同的路径被各种不同的功能使用(如果你喜欢的话,可以是网页)。所调用的功能的特定位由 GET 操作中的查询指示。如果将选择标准移至 POST,则您必须在前端控制器中满足这两种情况,并且您将无法解析日志文件中的功能。

Go read RFC 2616.

There are very specific semantics associated with GET and POST which have a big impact on caching and on logging.

In the case of your example, the data to be added should be sent in a POST. Whether a reference to the item being commented on should be sent via POST or GET variable is debatable. (you can POST to a URL with a query string and any competent web language should be able to discriminate between the same variable name sent via both methods)

A more transparent example of when GET and POST should be mixed is when POSTing to a front-controller - here the same path is used by various different bits of functionality (web pages if you like). The specific bit of functionality being invoked is indicated by the query in a GET operation. If the selection criteria are moved into the POST then you have to cater for both scenarios within the front controller, and you lose resolution of the functionality in the log files.

燃情 2024-12-01 21:11:23

它应该通过 POST 发送,主要是因为评论可能超过 Web 浏览器将访问的 URL 的长度。它还应该通过 POST 发送,因为此表单创建或修改数据,这是惯例。例如,搜索蜘蛛不会发出 POST 请求,以避免这样做。

不能混合使用 GET 和 POST。一个 HTTP 请求只有一种方法。

It should be sent by POST primarily because a comment can exceed the length of a URL a web browser will access. It should also be sent by POST because this form creates or modifies data, and that's the convention. Search spiders will not make POST requests, for example, to avoid doing that.

You cannot mix GET and POST. An HTTP request is of only one method.

白昼 2024-12-01 21:11:23

实际上我认为如果你这样做:

var id= $('#id').val();
var itemid= $('#itemid').val();
var comment= $('#comment').val();
var url = 'AddComment.php?id='+id;
var data = { itemid: itemid, comment: comment }
$.post(url, data, successFunction);

你的 itemId 将通过 POST 发送,ID 通过 GET 发送,并且 php 会识别它(我有时使用表单的操作而不是通过 ajax 来执行此操作)。

顺便说一句 - 为什么你需要这个?为什么不通过 POST 发送所有内容?

Actually i think that if you do:

var id= $('#id').val();
var itemid= $('#itemid').val();
var comment= $('#comment').val();
var url = 'AddComment.php?id='+id;
var data = { itemid: itemid, comment: comment }
$.post(url, data, successFunction);

your itemId will be sent throu POST and the ID through GET and php will recognize it (i sometimes do that using the action of the form but not through ajax).

BTW - why do you need this?Why not send everything through POST?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文