javascript - Ajax跨域請求和表單提交事件

來源:互聯網
上載者:User
假設現在有兩家網站,A和B,他們面向同一使用者(C)提供服務。
現在,C登入 A公司提供的網頁,在登入表單中輸入使用者名稱和密碼。
在輸入使用者名稱的時候,瀏覽器非同步請求資料,表單下方即時顯示可用使用者名稱,該資料是B網站伺服器返回的(A並沒有B網站伺服器的控制權)。
然後輸入完成以後,按斷行符號,觸發表單提交事件。提交的時候,使用者名稱發送到A網站,密碼本地雜湊後發送到B網站。

以上怎麼實現,不需要講的太具體。

回複內容:

假設現在有兩家網站,A和B,他們面向同一使用者(C)提供服務。
現在,C登入A公司提供的網頁,在登入表單中輸入使用者名稱和密碼。
在輸入使用者名稱的時候,瀏覽器非同步請求資料,表單下方即時顯示可用使用者名稱,該資料是B網站伺服器返回的(A並沒有B網站伺服器的控制權)。
然後輸入完成以後,按斷行符號,觸發表單提交事件。提交的時候,使用者名稱發送到A網站,密碼本地雜湊後發送到B網站。

以上怎麼實現,不需要講的太具體。

可以使用如下兩種做法:

  1. 使用CORS (Cross-origin resource sharing)
    需要B網站請求返回的頭部添加CORS相關Header,其中Access-Control-Allow-Origin中添加A網站的域。具體跨域資訊參考:http://blog.csdn.net/qgw_2000/article/details/8882051

  2. 通過A網站代理髮送請求到B網站
    請求都發給A網站,針對需要請求B網站的請求進行轉寄,在nginx中,簡單通過proxy_pass就可以做到。

這不就是xss嘛,B伺服器設定一下,接受來自A網域名稱的跨域請求就可以了。

如果懂伺服器配置建議採用二樓的第二種方法,如果不懂,用php的curl同樣可以實現,前端表單非同步提交都給A站,A站通過curl訪問B站的介面(或者說類比提交表單)來擷取你想要的資料

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.