Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(错误域名= NSCocoaErrorDomain代码= 3840

时间:2017-10-27 08:46:50

标签: ios iphone swift xcode alamofire

我正在研究swift项目并使用Alamofire调用webservice。 但是,在调用post方法时,我收到了以下错误。

Header file :

let accessTokenHeaderFile = [
    "Accept": "application/json",
    "Content-Type" :"application/json",
    "X-TOKEN" : UtilityClass.sharedInstance.accessTokenString
]

        Alamofire.request(urlString, method: .post, parameters: params as? [String:Any], encoding: JSONEncoding.default, headers: accessTokenHeaderFile).responseJSON { response in
          requestVC.removeLoader()
            switch (response.result) {
            case .success:
                if response.result.value != nil{
                    completionHandler (response.result.value)
                }
                break
            case .failure(let error):
                failureHandler (error as NSError?)
                break
            }
        }

错误是

FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

任何人都可以建议我,如何解决这个问题,我尝试使用谷歌搜索,但无论我发现什么答案都没有帮助我。

2 个答案:

答案 0 :(得分:0)

您的回复不是有效的json,因此您收到此错误。请检查module.directive("autoComplete", function($rootScope) { return { restrict: 'A', link : function(scope, elm, $attrs) { $rootScope.$watch('googleApiIsReady', function() { if ($rootScope.googleApiIsReady) { ... } }, true); } }; }); 以查看服务器返回的内容。如果您想查看实际响应,请尝试使用response.response?.statusCoderesponseString方法代替responseData

e.g。

responseJSON

您可以找到更多response methods here

答案 1 :(得分:0)

3840错误说服务器的响应不是有效的JSON字符串。所以你可以检查参数键值可能是错误的分配,因为类似于responseString而不是responseJSON