cfhttp通过单击的链接传递POST变量
cfhttp Passing POST variables via a link that is clicked?
我正在查看cfhttp标记,是否可以使用它通过单击链接传递变量?
<cfhttp method="Post" url="myurl">
我试图在点击链接时传递变量(例如,用户ID),但通过GET发送似乎有点不安全。。。
我最初的答案完全没有切中要害,但我无法删除已接受的答案,因此为了清晰起见,我将更改此答案,以同意Billy的上述评论。
CFHTTP用于向另一个网站发出服务器端请求(就像你自己访问该网站一样),处理该请求的结果,并将其存储在一个变量中,然后你可以使用该变量执行其他任务(例如,解析网站主页以获取特定值)。
你所要求的似乎是一个完全无关的功能,其中:
- 您的页面上有一个HTML锚(超链接)
- 当用户单击该链接时,您希望将一个或多个变量传递到新页面
实现这一点的最简单方法是使用隐藏表单,然后让超链接提交表单。这与Billy在问题评论中的建议相匹配:
<form name="myForm" method="post" action="pageToSendVarsTo.cfm">
<input type="hidden" name="username" value="theuser" />
<input type="hidden" name="id" value="42" />
</form>
<a href="#" onClick="document.myForm.submit();">the link to click</a>
在这里,您有一个HTML表单,其中有两个隐藏字段,用户名和id,它们不会显示在页面上,因为它们是隐藏的(但请注意,如果用户查看页面的源代码,仍然可以查看)。接下来,"要单击的链接"会以超链接的形式显示给用户。单击时,JavaScript用于模拟表单提交的触发;它的行为本质上就像表单有一个提交按钮,用户单击了该提交按钮。对于这个例子的表单来说,这意味着用户名和id值都会被HTTP张贴到你的"pageToSendVarsTo.cfm"页面,在那里它们可以在form范围内继续处理。
如果您不想将变量发送回CF来执行POST,您也可以使用一些JavaScript魔法来完成此操作。例如:
<a class="postLink" href="foo.cfm?var1=a&var2=b">Click Me</a>
现在,假设您想请求foo.cfm作为POST,并将var1和var2作为POST变量传递(假设jQuery):
<script>
$(function () {
$(document).on('click', 'a.postLink', function (e) {
e.preventDefault();
var newForm = $("<form method='POST'></form>");
if ($(this).attr('href').indexOf('?') != -1)
{
newForm.attr("method", $(this).attr('href').substring(0, $(this).attr('href').indexOf('?')));
var post_args = $(this).attr('href').substring($(this).attr('href').indexOf('?')+1, $(this).attr('href').length).split('&');
for (var i in post_args)
{
var keyVal = post_args[i].split('=');
newForm.append($("<input>", { type: "hidden", name:keyVal[0], value:keyVal[1] }));
}
}
else
{
newForm.attr("method", $(this).attr('href'));
}
console.log(newForm);
newForm.submit();
});
});
</script>
这将停止对所有用类"postLink"标记的链接的正常处理,并且将使用从链接URL中解析出的参数构建一个新的表单对象,而不是转到该页面,该参数包含在表单参数中。然后,它将使用POST将该表单提交到脚本指向的同一个基hrefhttp://jsfiddle.net/VGaPH/
- 正在拆分AJAX POST变量
- 如何将 POST 变量添加并保存到 Qualtrics
- 我使用jQuery发布的表单不发送POST变量
- Firefox插件-在提交之前捕获post变量[no-enctype]
- AJAX 将 POST 变量发送到 PHP
- POST 变量没有将日期从 jQuery 提交到 php
- 在 POST 变量中使用“&”
- 在代码点火器端访问 Ajax POST 变量时出现问题
- 如何在jQuery中获取POST变量
- 在 PHP 函数中调用 POST 变量
- 如何在不重新加载页面的情况下将 POST 变量提供给 PHP
- 通过 AJAX 创建的 post 变量
- 使用 jQuery 将 post 变量添加到表单中
- JS - 通过javascript提交不会传递post变量
- PHP/Ajax没有返回正确的错误并且没有识别POST变量
- PHP mysql查询忽略POST变量
- 如何在php中获取javascript post变量
- 如何使用Javascript提交POST变量
- 使用Javascript提交POST变量
- cfhttp通过单击的链接传递POST变量