Jquery 我可以创建链接作为发布到第三方站点并在新选项卡中打开吗?

Jquery 我可以创建链接作为发布到第三方站点并在新选项卡中打开吗?,jquery,html,post,Jquery,Html,Post,我正在尝试创建一个链接列表。当点击链接时,我想打开一个第三方站点并使用存储的凭据登录 基本上,我希望它的功能与任何站点的普通链接一样,只是POST值应该被发送并在另一个选项卡中打开 我所做的研究似乎表明,有JavaScript和jQuery方法可以做到这一点,但我不确定它应该如何构造。绝对如此。使用表单元素的操作、方法和目标属性: <form action="https://www.3rd-party.example/" method="post" target="_blank">

我正在尝试创建一个链接列表。当点击链接时,我想打开一个第三方站点并使用存储的凭据登录

基本上,我希望它的功能与任何站点的普通链接一样,只是
POST
值应该被发送并在另一个选项卡中打开


我所做的研究似乎表明,有JavaScript和jQuery方法可以做到这一点,但我不确定它应该如何构造。

绝对如此。使用
表单
元素的
操作
方法
目标
属性:

<form action="https://www.3rd-party.example/" method="post" target="_blank">
    <input type="hidden" name="username" value="administrator">
    <input type="hidden" name="password" value="hunter2">
    <input type="submit" value="Log in to 3rd party with administrator/hunter2">
</form>


如果您不希望它是一个按钮,可以使用CSS将其样式设置为链接。

最简单的方法是让链接提交一个指向该第三方站点的隐藏表单

<form id="login" action="[THE SITE'S LOGIN PAGE]" method="post" target="_blank">
    <!-- HYPOTHETICAL NAME/VALUES -->
    <input type="hidden" name="username" value="bob">
    <input type="hidden" name="password" value="secret">
</form>

<a href="javascript:document.forms['login'].submit();">Log in</a>

输入字段显然必须以第三方网站能够理解的方式填写


说明:您无法使用普通链接发送帖子数据,因此需要JS(或者使用表单按钮代替链接和JS)。表单与AJAX没有相同的限制,因此它们是理想的选择。
target=“\u blank”
会导致站点在新选项卡中打开。

这一点很好。像lastpass和awardwallet这样的网站是如何做到这一点的?在浏览器之外。它们是可下载的应用程序。@meagar:我很想知道你认为是什么层阻止了这一点。我所能想到的就是跨境限制,例如,表单帖子不适用。正是由于缺乏限制,跨站点请求伪造才成为可能。@meagar:当然可以。我一直认为(但显然从未测试过)浏览器阻止你以编程方式提交表单,而这些行为违反了同源策略,我显然大错特错了。然而。大多数网站(不是你的浏览器)都会使用CSRF令牌阻止这种情况。以下答案在大多数网站上都会因为这个原因而失败,如果不是因为浏览器阻止的话。请注意,在任何知道他们在做什么的人创建的网站上,这都会失败,除非他们明确希望允许你这样做。CSRF令牌是公认的最佳实践,大多数现代框架都会自动提供给您。他们的目的是明确地防止这类事情。之所以被接受,是因为这是最简单的方法。这是严格的内部使用,不会暴露在公众面前,所以我不太担心安全问题。