[英]How to send data from one website to another website in React js?
[英]Need to send data from one website to another asynchronously
我的腳本跟蹤客戶端頁面上的點擊並將其上傳到我的服務器(讓我們稱之為.http://fancyclickserver23.net)
現在我希望客戶端在他的網站上放置一個腳本,這個腳本將標記頁面上的點擊,並在頁面休假或甚至不時發送數據到.http://fancyclickserver23.net。
我不能使用Ajax,因為跨瀏覽器限制,當然。 那我該怎么做? 我會給出一些假設的代碼來幫助你理解。 我有一個關閉跟蹤器,在用戶放置時加載
<script src="http://fancyclickserver23.net/loadtracker.php?client_id=2332"></script>
代碼加載閉包跟蹤器= function(){....}; 用戶需要創建跟蹤器對象
<script>
track=new tracker();
track.init();
</script>
track.init()基本上綁定一個獲取元素Xpath並將其存儲在track.clicks中的函數。 現在我需要一個函數track.send(),它將點擊數組作為json發送(我知道如何將它轉換為json)並在頁面關閉時發送它。
我該怎么做呢。 我也看到一些網站使用類似的東西:
document.write("<sc"+"ript"+" src='https://fancyclickserver23.net/loadtracker.php?client_id=2332'"+"></scr"+"ipt>";
為什么這樣做而不是直接腳本標記? 如果我們必須使用document.write(),為什么不把它放在一個字符串中呢?
所以這兩個問題是:
采用 :
function sendData( data ){
var scr = document.getElementById("scriptExchange");
if(typeof scr == "undefined"){
var scr=document.createEelement("script");
scr.id="scriptExchange";
document.body.appendChild(scr);
scr = document.getElementById("scriptExchange");
}
scr.src = "http://another-website.com/?query="+data;
}
每當你想發送數據時,請調用此功能。 。
現在在另一台服務器上設置對純JS代碼的響應,例如
alert("Data Received");
並從其他服務器放入
盡管存在跨域安全限制,但您仍可以在某種程度上使用AJAX(XHR)。
瀏覽器無法像這樣刪除跨域請求。 它必須先看看服務器對它的看法。 它通過將實際請求發送到服務器並接收指令以及HTTP頭中的響應來完成此操作。 如果Access-Control-Allow-Origin
標頭未到達或與原始域不匹配,則瀏覽器會刪除響應並在控制台中拋出安全警告。
從我個人的經驗, Access-Control-Allow-Origin
頁眉或沒有,當現場aaa.com發送AJAX請求網站bbb.com交付單向數據有效載荷的服務器發生反正。 這只是一個獨白,但更需要收集數據,對吧? ;)
我舉個例子,對於利用類似你們的東西單向技術-我收集的JSON報告單元測試我的開源項目的成果在這里 。 您可以在控制台中發現安全警告,但此時報告已經安全地存儲在服務器上。
如果您可以將點擊數據數組轉換為查詢字符串,則可以執行以下操作:
var img = new Image(1,1);
img.src = "http://example.com/clicks-receiver?" + query_string;
您可以使用jQuery和jsonP來實現此目的。
1)使Ajax調用如下:
var url = your_other_domain_url + "jsoncallback=?";
var params = {param1:val1, param2:val2};
$.ajax({
type: 'POST',
url: url,
data: params,
success: function(data){
//success jsonp handler - assume content in data.response
if(data.response){
//do something with the remote site content
}
},
dataType: "json"
});
2)在服務器端,跟蹤任何具有參數'jsoncallback'的請求,並將響應放在json返回對象中,如
{status: 'success', response: "<html>.....resposne conent...</html>"}
是不是可以使用iframe。 父級可以看到iframe,iframe可以將腳本運行回另一台服務器而不會跳過一堆籃球。 我相信我們的omniture實現使用這種方法。
如上所述的img方法也是一種潛力。
一篇較舊的文章:
http://www.codecouch.com/2008/10/cross-site-scripting-xss-using-iframes/
或其他
http://blog.kotowicz.net/2010/11/xss-track-how-to-quietly-track-whole.html
傳播這些東西是不好的形式?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.