【发布时间】:2014-07-30 16:23:26
【问题描述】:
我在我的 iOS 应用中使用 AFNetworking 2.+, 我的服务器使用 JSON 漏洞保护。
这使我对服务器的请求“工作一半”。 意思是,我的请求确实得到了代码 200,但请求失败。 我无法解析 json。
我正在使用 AFHTTPRequestOperationManager 并像这样设置他的序列化器:
[self setResponseSerializer:[AFJSONResponseSerializer serializer]];
[self setRequestSerializer:[AFJSONRequestSerializer serializerWithWritingOptions:NSJSONWritingPrettyPrinted]];
我也试过了:
[self setResponseSerializer:[AFJSONResponseSerializer serializer]];
[self setRequestSerializer:[AFJSONRequestSerializer serializer]];
效果也不好。
据我所知,JSON Vulnerability Protection 在真正的 json 之前添加了“)]}'”,如图here in angular docs
JSON 漏洞保护 JSON 漏洞允许第三方 网站在某些情况下将您的 JSON 资源 URL 转换为 JSONP 请求 条件。为了解决这个问题,您的服务器可以为所有 JSON 请求添加前缀 使用以下字符串 ")]}',\n"。 Angular 会自动剥离 将其作为 JSON 处理之前的前缀。
例如如果你的服务器需要返回:
['一个','两个']
容易受到攻击,你的服务器可以返回:
)]}', ['一','二']
AFNetworking 提供给我的工具有什么方法可以解决这个问题吗?
我应该使用自定义的 AFJSONRequestSerializer 吗?
谢谢,
沙哈尔。
【问题讨论】:
标签: ios json afnetworking-2