iT邦幫忙

0

如何從window.open 接收 api response 並關閉 window.open?

欲完成的流程如綠界操作頁面

目前完成的結果:

卡在地圖回傳資料時,client 不知如何接收資料,這邊我嘗試做過ajax接收response

但這次問題比較特別的是網址會有更動,如我們透過 [GET]http://localhost:5000/logistic/map 開啟地圖
而地圖會回傳至[POST] http://localhost:5000/logistic/server_reply
結果就會如我所做部分 回傳資料會顯示在視窗上,

而我想解決的部分是js能抓取到api資料 並避免讓使用者看到資料的頁面,所以當js 抓到資料後能關閉視窗

這邊我在邏輯處理上就卡住了,請問有大大能提供意見嗎?

fillano iT邦超人 1 級 ‧ 2018-10-05 11:40:32 檢舉
用iframe?
Luis-Chen iT邦新手 4 級 ‧ 2018-10-05 11:49:33 檢舉
剛剛又有新的想法,既然資料能傳到browser端,那應該已經存在browser的某的地方了,剛剛去看console
![](https://i.imgur.com/T7Jp4Zr.png)
我想取得資料可以從frames 去存取?
優悠 iT邦新手 3 級 ‧ 2018-10-05 15:38:35 檢舉
直接在當前頁面輸入資料,再用AJAX傳資料去儲存,跳提示視窗(如:儲存成功),最後刷新頁面,假設PK有值,再看要跳離頁面還是要做什麼。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0

感覺你好像有點不太了解ajax的使用特性。
認真來說,你用一個視窗來做post其實是多餘的。除了增加會被用戶看到資料的情況下,你還得去處理資料傳送跟視窗關閉的處理。其實這些都是沒必要的。

先了解一下ajax的特性跟backcall。

因為不知道你的寫作方式為何,因為對方會有一個回傳動作的特性。理論上這因該是一種json的回傳值。正常這是需要背景式的讀取才對。而不該是直接顯示頁面。

如果真的對方是採用回傳頁面的方式,而非值回傳的處理。
你也可以寫一支後端程式來接受這些值後顯示。不該是直接接收顯示才對。

看更多先前的回應...收起先前的回應...
Luis-Chen iT邦新手 4 級 ‧ 2018-10-05 12:35:20 檢舉

我想問題應該是出在大大後面講的處理方式,不過電子地圖會回傳後跳轉應該是POST method的關係,我接收資料的api 我是讓他回傳地圖給的資料所以才會顯示在頁面上


export const getLogisticReply = (req, res) => {
	res.send(req.body)
}

從你的畫面看來,它是直接回傳json的值。理論上來說,因該會有直接取值的方式,而非再重轉發送才對。我想你因該是有設定到轉發送的參數才對。
因為如果有直接取值的方式,你用ajax去接值回來就可以了。
但如果真的不能用直接取值的方式,那就看你是用何種後端語言。將轉發送的值重新處理後直接顯示你要的畫面就行了。

Luis-Chen iT邦新手 4 級 ‧ 2018-10-05 13:43:43 檢舉

感謝大大提點,我去試試看

Luis-Chen iT邦新手 4 級 ‧ 2018-10-08 11:44:39 檢舉

最後我是用socket io 傳值給瀏覽器做操作

我要發表回答

立即登入回答