Ios uploadTask allHeaderFields中缺少标头。不';t包括来自访问控制的自定义头暴露头
我的服务器正在使用CORS。当用户成功登录时,响应包括标题:Ios uploadTask allHeaderFields中缺少标头。不';t包括来自访问控制的自定义头暴露头,ios,swift,cors,Ios,Swift,Cors,我的服务器正在使用CORS。当用户成功登录时,响应包括标题:accesstoken、uid、client 服务器响应头包括:访问控制公开头:访问令牌、uid、客户端 但是,当我从上传任务中获得成功响应,并访问allHeaderFields时,这些键/值将丢失 我需要做什么才能访问这些标题 谢谢 编辑并添加现在可以正常工作的客户端代码: func postReq(url: URL) -> URLRequest{ var request: URLRequest = URLRequest
accesstoken、uid、client
服务器响应头包括:访问控制公开头:访问令牌、uid、客户端
但是,当我从上传任务中获得成功响应,并访问allHeaderFields
时,这些键/值将丢失
我需要做什么才能访问这些标题
谢谢
编辑并添加现在可以正常工作的客户端代码:
func postReq(url: URL) -> URLRequest{
var request: URLRequest = URLRequest.init(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "content-type")
return request
}
func login(){
let url:URL = baseEndpoint.appendingPathComponent(Endpoints.login.rawValue)
let request: URLRequest = postReq(url: url)
let body: [String : String] = ["email" : "test@test.com", "password": "loremipsum"]
let bodyData:Data = try! JSONSerialization.data(withJSONObject: body)
uploadTask = defaultSession.uploadTask(with: request, from: bodyData, completionHandler: { (responseData, response, error) in
if(error == nil){
let headers = (response as! HTTPURLResponse).allHeaderFields
}
})
uploadTask?.resume()
}
安妮解决了我的问题。没有问题,我只是缺少正确的内容类型。脸掌 如果您发布一些版本的客户机代码,或者至少清楚地指出客户机代码运行在什么运行时,您将更有机会得到答案
Access Control Expose Headers
只影响浏览器引擎的行为,那么这是您试图从iOS Safari中运行的前端JavaScript脚本代码中执行的操作吗?还是用Swift代码?如果它实际上是Swift代码,那么访问控制暴露标题
就无关紧要了。多么愚蠢的举动啊。结果发现我的请求中缺少了正确的内容类型。呻吟@sideshowbarker让我再看一眼。非常感谢。如果您发布一些版本的客户机代码,或者至少清楚地指出客户机代码运行在什么运行时,您将更有机会得到答案Access Control Expose Headers
只影响浏览器引擎的行为,那么这是您试图从iOS Safari中运行的前端JavaScript脚本代码中执行的操作吗?还是用Swift代码?如果它实际上是Swift代码,那么访问控制暴露标题
就无关紧要了。多么愚蠢的举动啊。结果发现我的请求中缺少了正确的内容类型。呻吟@sideshowbarker让我再看一眼。非常感谢。