2013-03-08 86 views
0

我在設法解決標題中的問題時遇到了問題。我想知道是否有人可以幫助我。如何將POST數據發送到外部框架中的外部頁面?

所以我會更詳細地解釋一遍:

我有一個包含它發送POST數據到外部URL(不mysite.com但hissite.com,我希望你有這個想法形式的網頁) 爲了隱藏其他網站的實際URL,我使用了一個HTML框架在我自己的網站(例如mysite.com/hissite)中創建一個頁面。 問題是我無法將表單輸入傳遞給hissite.com,而是通過我網站內的框架。

我基本上想要以下內容: 1.用戶登錄我的網站。 2.我的登錄表單將登錄信息傳遞給其他網站。 3.用戶已登錄,但被重定向到另一個網站,他被重定向到我的網站內包含另一個網站的框架。

我不知道如何更好地解釋它,但我希望有人能理解我並幫助我完成我的項目。

我不得不提到,我的網頁上的表格與其他網站上的表格具有相同的結構(字段,字段名稱等)。所以我相信通過框架傳遞輸入會非常容易。那麼......我意識到這並不容易。

這裏是形式:

<form action="/home/signin" method="post" name="loginForm" class="large-form" id="loginForm" > 
    <fieldset> 
    <label for="username">Username</label> 
    <input type="text" name="username" tabindex="1" id="username" value="" /> 
</fieldset> 
<fieldset> 
    <label for="password">Password</label> 
    <input type="password" name="password" tabindex="2" id="password" value="" /> 
    <input type="hidden" name="themeName" value=""/> 
</fieldset> 
<br/> 
<div id="login-button"> 
    <input type="submit" value="Log In" tabindex="3" /> 
</div> 

預先感謝您的幫助。

回答

-1

在這種情況下,您需要使用ajax調用,您可以將想要的信息發送到其他頁面,然後您可以隨意進行數據處理,只需將表單提交的呼叫作爲javaScript就可以:

$.ajax({ 
     url: siteUrl, 
     type: "post", 
     async:true, 
     dataType: 'json', 
     success: function(data){ 
your function 
     }, 
     error: function(e){ 
your error function 
     } 
    }); 
+0

此嘗試將被同一來源策略阻止。 – Quentin 2013-03-09 15:02:09

+0

謝謝你的回答。我非常感謝你的幫助。但我很抱歉地說,我對阿賈克斯沒有任何知識。我剛開始學習網絡語言。我對PHP,HTM和CSS有很好的理解,但沒有更多。如果你可以更具體,它會很棒。但是,我正在考慮將表單輸入存儲在$ _SESSION中,然後將用戶重定向到包含網頁的框架,然後使用一些PHP讀取$ _SESSION中的數據並自動通過POST將數據發送到原始表單網站沒有任何人際互動。 – 2013-03-09 15:02:56

+0

你認爲這是可以實現我的想法?我期待着您的迴應。非常感謝你。 – 2013-03-09 15:06:08

0

缺少代理第三方網站,用你的方法,這是不可能的。

,你可以:

使用框架通常

這將涉及表單上的target屬性設置爲框架的名稱和action給第三方URL。

只要第三方網站在其登錄表單上沒有針對CSRF attacks實施任何保護,這將起作用。

此方法不會爲您提供用於登錄的憑據(儘管您可以使用JavaScript來嗅探它們)。

代理整個網站

這將涉及與上面相同,除了你設置action在您的網站的URL。然後,您必須使用服務器端代碼向第三方站點發出HTTP請求(在服務器上維護每個用戶的cookie jar)。對於每個請求,您都必須分析每個響應並更改HTML,CSS,JavaScript等中的任何URL,以便繼續工作(因爲相對URI會失敗)。


無論哪種方式 - 要求用戶在你的第三方網站輸入他們的憑證是一個高度可疑的請求。像這樣的證書應該是保密的而不是共享的。

相關問題