2014-03-04 35 views
0

試圖讓事情有點複雜,我希望這有可能,或者有人可能會提出一種方法來做到這一點。腳本注入並在返回結果前做出ajax調用

現場A我有一個預訂信息數據庫。

現場B我想向人們展示這些預訂正在發生的時間。

所以內設有一個我創建一個PHP頁面這會佔用所有數據,並將其轉換爲JSON。

我然後創建一個js腳本來運行一個AJAX調用該PHP頁面,返回的信息,並使用JavaScript來創建一個表,並建立它的地方腳本被調用。

有點像twitter的小部件。

現在我想要做的是,將幾行代碼粘貼到站點B中,該站點調用站點A上的js腳本,該站點運行ajax命令,然後獲取數據,創建我提到的表以及把它放在現場B.

這可能嗎?腳本在傳遞給站點B之前是否會在站點A上進行ajax調用?或者它將無法進行ajax呼叫,因爲它首先被放置在站點B上,而我無法從站點B呼叫站點A?

+0

你想粘貼什麼樣的「代碼行」?你能不能只添加一個js文件到站點B,只是做ajax調用? – 2pha

+0

不是,每個網站都會有所不同。 基本上它需要用戶的唯一標識碼,並將其發送到原始腳本。 該腳本然後進行ajax調用,獲取詳細信息並將其發回。有點像Twitter的小部件功能。對於許多其他網站而言,它會有所不同,因此將多個網站鏈接起來粘貼一整串代碼並不是一件好事。而不是在現場A容易修補的一條線,以便限制每個單獨站點的潛在問題。 –

+0

對不起,代碼行。 這是預訂信息,所以它會創建一個包含房間和日期的小部件(但刪除不可用的日期和本質上的日期),這對每個獨特的想法都會有所不同。所以這就是爲什麼我想以這種特定的方式來做到這一點。 –

回答

1

這是可能的,但方式有點不同於你的建議。

首先回答您的問題:當您在站點B上包含來自站點A的「數據獲取者」腳本時,它將在站點B上執行。它將嘗試對站點A執行ajax調用,並且因爲相同 - 原始政策。

的方式來完成,這是通過JSONP

您需要首先創建一個PHP頁面,其中產生一些JSON數據,並調用預定義的JavaScript函數,如:

fetcher.php:

<?php 
$data = fetchCustomerBookings($_GET['customerid']); 
echo "renderBookings(".json_encode($data).")"; 
?> 

然後你就可以在包括該腳本網站B有一個普通的腳本標記,如:

<script type="text/javascript" src="http://site-a.com/fetcher.php?customerid=XXX"></script> 

那裏你需要定義renderBookings javascript f已經聯合。

+0

非常感謝:)這使得很多感覺!我很欣賞這種迴應,並會嘗試一下 –