2014-06-13 65 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