Ionic iOS标准http调用未传递特定标头

xfb7svmp  于 2023-03-16  发布在  Ionic
关注(0)|答案(1)|浏览(113)

我们在API服务器上实现了某些安全功能。其中一部分功能是查找特定的HTTP头,如OriginX-Requested-With。当我们的应用向服务器发出自定义调用时,它会将这些特定的头添加到请求中。但应用的其他部分只进行标准的http调用,如加载图像:即<img src="https:mydomain.com/file/img1.png">
但我们发现的问题是,在iOS上,这两个标头从标准的http调用中被省略了。是否有办法强制iOS将Origin和/或X-Requested-With添加到资源加载调用中?

jtjikinw

jtjikinw1#

无法强制iOS向标记发出的标准HTTP请求添加自定义标头(如Origin和X-Requested-With),因为浏览器控制这些请求的生成。
但是,您可以通过API服务器代理图像请求来解决此限制,这涉及到修改标记以指向API服务器上的URL,该URL从源获取图像并在返回响应之前添加必要的标头。

以下是如何在Swift中使用URLSession实现此功能的示例:

let yourURL : String = "Your Url Goes Here"
guard let url = URL(string: yourURL ) else { return }

var request = URLRequest(url: url)
request.addValue("my-origin-header-value", forHTTPHeaderField: "Origin")
request.addValue("my-requested-with-header-value", forHTTPHeaderField: "X-Requested-With")

let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
    // Handle the response
}

task.resume()

在这个例子中,我创建了一个自定义的URLRequest对象,并添加了必要的头文件,然后使用URLSession获取图像数据。您可以修改此代码以满足您的特定需求,并将其与现有的代码库集成。
请记住,这种变通方法有一些缺点,如增加服务器负载和潜在的缓存问题,因此应谨慎使用。

相关问题