2016-05-06 84 views
0

我試圖將圖像附加到通過圖像URL向第三方營銷網站發送GET請求的頁面。我會完全承認,我不完全理解這是如何通過GET請求完成的,沒有相關的文檔從這個第三方API插件(如果這就是它所稱的),但我知道它發送這個GET請求,我看到在Chrome開發工具中的「網絡」下。GET請求完成之前阻止頁面加載

此GET請求正在根據我正在檢查的API儀表板工作。但是,有時GET請求會失敗,數據不會發送到服務器。這經常發生在我第一次訪問這個頁面時,它發送這個GET請求,並且圖像的路由沒有被緩存,GET請求被取消,因爲圖像實際上是一個綁定到表單的提交。我的理解是,該頁面將在GET請求完成之前加載下一頁,因此GET請求將被取消。隨後GET請求返回的速度可能快得多,可能是由於路由被緩存(我相信),並且它成功通過。

我想知道可以做什麼,以便我等到這個GET請求完成。我試圖調查AJAX並通過這個請求發送這個請求,所以我可以使用同步調用GET,但這是折舊的,所以它是一個非啓動器。此外,如果我直接使用AJAX調用(通過下面的圖像調用訪問域,則奇怪地沒有問題),似乎我遇到了跨域訪問控制問題。

以下是作爲窗體的一部分被稱爲onclick()事件的函數。被點擊的元素是綁定到該表單的圖像/提交按鈕。

function appendImageToBody() { 
     var imgTag = document.createElement("IMG"); 
     var imageURL = 'http://imgur.com/fakeimage'; 

     imgTag.setAttribute("src", imageURL); 
     imgTag.setAttribute("width", "0"); 
     imgTag.setAttribute("height", "0"); 
     imgTag.setAttribute("id", "Img"); 
     document.body.appendChild(imgTag); 
} 
+0

GET請求是否在圖像加載完成時觸發,以跟蹤頁面已被查看(一種很好的分析技術)?你是說在GET請求完成之前用戶瀏覽另一個頁面,有時候? – Danny

+0

@Danny是的,當點擊提交圖像後,圖像被添加到身體後,它會熄滅。該圖像實際上是表單的提交按鈕,因此瀏覽器在GET請求完成之前加載下一頁(在開發工具中返回取消狀態)。這主要是GET請求第一次需要1秒以上才能返回。當我重新加載頁面並第二次提交表單時,它似乎被緩存並在300-400 ms內返回,在下一頁加載之前很容易加載,因此GET請求返回200 OK。 – EMChamp

+0

似乎追蹤表單通過在下一頁加載時加載圖像來提交(並因此會中斷GET請求)並不是跟蹤此操作的最佳方式。您可以在加載頁面時加載圖像(頁面1或頁面2,表單操作重定向到的地方),以滿足分析。或者,附上一個Ajax請求表單提交以滿足分析(你可能已經嘗試過,不知道...)。但是,在提交表單並希望發送另一個請求後加載圖像似乎很容易出錯。你可能想在這裏粘貼你的表單提交代碼和關於第三方API的w/info。 – Danny

回答

相關問題