2012-05-16 32 views
-3

我在基於網絡的應用程序中工作,該應用程序必須在第三方網站上向用戶顯示其帳戶信息,他們將提供其登錄詳細信息,並且必須提取數據從他們的帳戶,並顯示在我的基於網絡的應用程序,但問題是第三方網站將不允許其他人訪問他們的帳戶誰沒有在他的數據庫中註冊的IP。所以,我不能使用任何服務器端或任何類型的代理我必須使用用戶IP發送和接收網站的數據。通過javascript向第三方域請求和響應

所以我的主要問題是「如何在任何基於客戶端的語言中獲得跨域請求的響應」。我聽說這是不可能的,因爲它是違反跨域策略,但我發現一些網站告訴它可以使用JSONP和一些src屬性。我真的很困惑如何去做。我需要一個方法的例子,比如我向第三方網站發出請求並能夠讀取它們發送的resone。

請幫幫我。

感謝

回答

0

你不能讓你的訪問者的瀏覽器發出HTTP請求到任意網站,並在處理JavaScript的響應。

如果第三方構建了JSON-P API,則可以使用該API。

如果第三方支持CORS(和你的訪問者有compatible browser那麼你可以使用XHR。

有一個在進入關於其中的任意一種方法的細節,除非你已被告知,他們是支持小點。 (如果第三方將他們的服務鎖定到特定的IP地址,我會很驚訝,如果其中任何一個都支持)

0

對於JSONP請求,您可以使用庫或手動完成,對於後者插入一個新的<script>標記,其src屬性包含您的所有請求信息和附加回調屬性。

<script src="//remote.host.com/getJSONP.php?param1=0&callback=myFunc"></script> 

在您的頁面中,您必須定義一個與回調函數(此處爲myFunc)同名的函數,該函數處理響應。

function myFunc(data) { 
    // do something with data 
} 

響應通常是一個或多或少複雜的JS對象,然後您可以在回調函數中使用該對象。

注意:您只能傳遞GET參數,並且沒有POST或任何其他類型!

相關問題