2014-06-13 39 views
0

我正在尝试创建一个导航到第三方网站并自动登录的链接。使用Javascript和POST自动登录

没有API,表单不支持查询字符串。安全性不是问题(我知道在链接中传递变量不是很好的做法,但在我们的情况下可以)。

我可以让它使用VBS工作,但IE使得执行脚本非常困难。

我现在使用Javascript:

function autoLogin() { 
    document.Form1.submit(); 
} 

我的HTML:

<form name="namofform" method=post action="www.websiteofloginpage.com"> 
<input type=hidden id=ID name="USERNAME" value="USERNAME"/> 
<input type=hidden id=ID name="PASSWORD" value="PASSWORD"/> 
</form> 

我改变字段的形式之一。当我执行脚本时(载入或通过链接),它会导航到页面,但不会发布(登录)。

我注意到提交按钮是使用_doPostBack - 这就是为什么它不工作试图从我的一个不同的网站?

+0

我们与客户端有一个非常类似的问题,他们的解决方案是尝试使用VBScript作为前端,并使用您尝试的相同方法提交表单。这是可能的,但不是一个好主意。我们很幸运能够使用查询字符串,但您可以并且应该使用跨域发布。 – MaKR

回答

1

你看过其他跨域发布答案吗?当然有很多方法可以绕过浏览器的相同原始策略,但是您无法通过简单的JavaScript POSTing表单来完成。

查看更多在这里: Cross Domain Form POSTing

也许你可以使用一个基于CORS或JSONP解决方案:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

What is JSONP all about?

+0

我有,即使没有使用Javascript,只是尝试跨域POST,登录页面加载但没有任何反应。我有一种感觉,但是这个软件正在运行,因为第三方网站上的“登录按钮”不是一个简单的输入提交,而是这个javascript _doPostBack。 – Robbeh

0

你尝试提交形式与良好的URI ,一般我们会有这样的:www.example.com/login。 Jim Miller的回答中还提到了另一点,即Cross Domain Form POSTing。

+0

我做了,该网站运行SSL,会是一个问题吗? https://thedomain.com/customdirectory/login.aspx是我正在使用的行动。 – Robbeh