質問編集履歴

2

ソースコード: showCart() に request.setValue部分を追加

2021/09/13 02:13

投稿

2319
2319

スコア0

test CHANGED
File without changes
test CHANGED
@@ -64,6 +64,10 @@
64
64
 
65
65
  let request = URLRequest(url: URL(string: "https://example/cart.json")!)
66
66
 
67
+ //20210913追加
68
+
69
+ request.setValue("_session_id=XXXXX", forHTTPHeaderField: "Cookie")
70
+
67
71
  URLSession.shared.dataTask(with: request) { (data, response, error) in
68
72
 
69
73
  if error == nil, let response = response as? HTTPURLResponse, let data = data {

1

Cookieの確認結果を追記

2021/09/13 02:13

投稿

2319
2319

スコア0

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,14 @@
94
94
 
95
95
  同じコードをChrome拡張機能(ajax)で実装:問題なくカートの中身が取得できます。
96
96
 
97
+ (2021/09/13追記)
98
+
99
+ 一連の流れをブラウザで確認したところ、カートに入れたときの応答ヘッダーのContent-Typeはtext/javascriptで、Set-CookieにsessionIdが含まれていました。その後、カート内容表示する際にsessionIdを渡していました。
100
+
101
+ 当プログラムのカート内容表示処理(showCart())で、sessionIdを設定したところ正常にカート内容が表示されました。
102
+
103
+ ただ、当プログラムのカートに入れる処理(cartin())で返ってくるContent-Typeはtext/htmlで、そのhtmlを確認するとDOMContentLoadedでsessionIdを作成しているようでした。WKWebView等で実装しないとダメなのかもしれないです。。。
104
+
97
105
 
98
106
 
99
107
  ### 補足情報(FW/ツールのバージョンなど)