【发布时间】:2016-03-17 13:26:03
【问题描述】:
我在 iOS 应用程序中有一个 Angular Web 构建,并希望通过一些 JSON 向本机层发出 POST 请求,我可以使用这些 JSON 来构建一些本机功能。我正在使用旧的 UIWebView(因为 Angular)所以我使用 NSURLProtocol 来拦截请求。这有效,我可以在请求进入时中断。问题是我此时在数据属性中看不到JSON,因为它不是响应。该请求仍在配置对象中,但我不知道如何获取它。
我创建帖子的角度代码目前是这样的:
var newdata = $.param({
json: JSON.stringify({
name: "Lee"
})
});
$http.post(url, newdata)
在我的NSURLProtocol 类中,我成功地在这个方法中拦截了这个 POST,但 HTTPBody 属性为零:
override class func canInitWithRequest(request:NSURLRequest) -> Bool {
if (request.URL!.absoluteString as NSString).containsString("request_media_gallery") {
if(request.HTTPBody != nil){
let data:NSData = request.HTTPBody!
print(data)
}
return true
}
return request.URL?.host == "file"
}
如果我在 chrome 中调试它,我会因为 CORS 而得到 405,但我可以看到我的请求对象没有任何数据,但确实有一个配置对象。这是来自 Chrome 的控制台日志:
【问题讨论】:
标签: ios angularjs json nsurlrequest