global netid
on beginsprite me
user = member("name").text
age = member("age").text
email = member("email").text
url = "http://localhost/web/server.asp"
nid = postnettext(url, [#name:user, #age:age,#email:email])
end
on exitframe me
if netdone(nid) then
if neterror(nid) = "ok" then
reval = nettextresult(nid)
_player.itemDelimiter=","
end if
end
以上範例,我想抓該網址的一些文字資料放在raval裡
我在練習途中,url放某些網址可以連結,有些不行
neterror(nid) = "ok"這段不會過,會顯示
trace(neterror(nid))=4165連不到網址
請問為什麼會這樣呢?是因為有該往只有防火牆擋住?還是網站編碼問題
大概十幾年沒碰lingo了,不過我猜是這個問題,先請你參考一下:
http://help.adobe.com/en_US/Director/11.5/UsingScripting/WSc3ff6d0ea77859461172e0811d64c1a1b3-7c69.html
網路操作基本上是會有延遲的,有時候操作在你離開frame時可能還沒完成,所以你需要等他完成才行,上面的第二個例子就是在做這件事。
另外,有些網址基本上是不能用post操作的,建議你可以先用getnettext來試試...
我嘗試不同網址
只有neterror有時候不會過
netdone都會過耶
請問有些網址不能用post的原因是什麼?
我不太懂它的規定
netDone代表伺服器已經回傳給你資訊,不論有沒有錯誤。所以你會需要在netDone之後處理netError,以4165為例,應該就是伺服器返回http status code 404 (file not found) ,通常是網址有錯。請參考netError中的說明:http://help.adobe.com/en_US/Director/11.5/UsingScripting/WSc3ff6d0ea77859461172e0811d64c1a1b3-7c68.html
另外,我這樣講不太好,但是回答了就不能改,如果只是要測試,使用getNetText可以跟直接在瀏覽器輸入網址來比較,這樣應該比較容易確定問題。直接在瀏覽器模擬post需要用ajax,但是這樣就不能跨網域...
已經可以了
但我還是不知道為什麼有些可以有些不行lol
不過還是感謝解答