我有一個 Go 程式,它只是模擬使用 Surf ( gopkg.in/headzoo/surf.v1)訪問的本地網頁,但頁面上的 Javascript 似乎沒有被執行。只是為了測驗,我讓網頁對服務器上的另一個路由進行 ajax 呼叫,該路由只會在服務器端輸出回應。
<html>
<head>
<script src="jquery.min.js"></script>
</head>
<body>
<script>
$.ajax ({
url : "/test",
type : "GET",
success : function(res) {},
error : function(res) {}
});
</script>
</body>
</html>
然后Go Surf函式訪問頁面,這個路由也在服務器端輸出一個回應,顯示出來但是ajax請求沒有顯示出來。
func simulateVisit() {
bow := surf.NewBrowser()
bow.SetUserAgent("LocalCrawler/1.0")
err := bow.Open("http://127.0.0.1/page")
if err != nil { fmt.Println(err) }
}
為了確保它只發生在 Surf 上,我還用 Chromedp ( github.com/chromedp/chromedp)測驗了它,它正確地給出了兩個回應。
這是 Surf 的限制還是我在做一些愚蠢的事情?
uj5u.com熱心網友回復:
Surf 不包含 JS 運行時。它確實支持下載腳本,但它永遠不會真正執行它們。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/404475.html
標籤:
