这个问题在这里已有答案:
基本上我想要做的是在我更改 window.location
时发送 POST
数据,好像用户提交了一个表单并且它转到了新页面 . 我需要这样做,因为我需要传递一个隐藏的URL,并且出于美观的原因,我不能简单地将其作为 GET
放在URL中 .
这就是我目前所拥有的,但它不会发送任何POST数据 .
if(user has not voted) {
window.location = 'http://example.com/vote/' + Username;
}
我知道您可以使用 jQuery.post()
发送 POST
数据,但我需要将其与新的 window.location
一起发送 .
所以回顾一下,我需要通过 POST
将 api_url
值发送到 http://example.com/vote/
,同时将用户同时发送到同一页面 .
For future reference, I ended up doing the following :
if(user has not voted) {
$('#inset_form').html('<form action="http://example.com/vote/' + Username + '" name="vote" method="post" style="display:none;"><input type="text" name="api_url" value="' + Return_URL + '" /></form>');
document.forms['vote'].submit();
}
11 回答
构造并填写隐藏的
method=POST action="http://example.com/vote"
表单并提交,而不是使用window.location
.根据@ Kevin-Reid的回答,这里是“我最终做了以下”示例的替代方法,它避免了需要命名,然后通过专门构造表单(使用jQuery)再次查找表单对象 .
这是一个简单的小函数,只要你使用jQuery就可以在任何地方应用 .
如果您使用的是jQuery,那么redirect plugin可以使用POST或GET方法 . 它创建一个带有隐藏输入的表单并为您提交 . 如何使其工作的一个例子:
Note: 您可以将方法类型GET或POST作为可选的第三个参数传递; POST是默认值 .
这是一个不使用jQuery的方法 . 我用它来创建一个bookmarklet,它检查w3-html-validator上的当前页面 .
这里的答案可能令人困惑,所以我会给你一个我正在使用的示例代码 .
首先请注意,您所指的java脚本windows.location函数没有POST参数 .
所以你必须......
使用POST参数动态创建表单 .
动态地将带有所需值的文本框或文本框发布到帖子中
调用动态创建的提交表单 .
并举例说明 .
如果一切顺利,您将被重定向到test2.php并且您可以使用POST来读取employee_name和salary的传递值;这将分别是彼得和1000 .
在test2.php上,您可以获得您的值 .
不用说,确保您清理传递的值 .
将任何JavaScript对象发布到给定URL的通用函数 .
这非常方便使用:
然后使用它像:
找到代码http://www.prowebguru.com/2013/10/send-post-data-while-redirecting-with-jquery/
要为我的工作尝试这个和其他建议 .
有没有其他方法可以做同样的事情?
您可以使用
target
属性从iframe发送带有重定向的表单 . 您的表单打开标记将是这样的:SOLUTION NO. 1
SOLUTION NO. 2
details