2012-11-04 50 views
3

我想將我的Chrome擴展程序連接到我的服務器,並來回發送數據。特別是,當用戶在瀏覽某個URL時單擊該擴展上的按鈕時,服務器會檢查其數據庫,以查看該URL已被點擊了多少次,增加計數並將新計數發回給用戶。Chrome擴展數據連接到服務器

我知道發送數據到服務器是可能的AJAX請求,但如何從服務器獲取數據?

回答

3

我認爲,您可以使用AJAX以直接方式獲取更新計數。例如(使用jQuery):

$.ajax({ 
    url: 'ajax/count.php?url=' + encodeURIComponent(newURL), 
    // dataType: 'json', 
    success: function(data) { 
    // parse you data received from server here 
    // data.count 
    } 
}); 

這樣你就可以「送」新的信息作爲GET請求的參數,並從服務器的HTTP響應所需的信息。用於傳輸計數的數據類型由您決定。例如,這可以是json(jQuery提供了一種簡寫方法getJSON,它執行相同的自定義ajax調用)。

如果你不想GET,你可以使用POST並將其設定數據:

$.ajax({ 
    type: "POST", 
    url: "ajax/count.php", 
    data: { url: newURL }, 
    success: function(data){ 
    // ... 
    } 
}); 
1

你顯然需要使用XHR/阿賈克斯

但本鉻擴展API,你可能會得到這樣的錯誤

沒有'Access-Control-Allow-Origin'標題存在於請求的資源。

爲了解決這個問題,可以簡單地把鏈接到服務器的許可陣列上的manifest.json

"permissions": [ 
    "tabs", 
    "http://www.myserver.dom" 
], 

更詳細的說明見this documentation by Google

+2

也就是說,或者如果它是您控制的服務器 - 您可以添加「Access-Control-Allow-Origin」標頭。 – Xan