仅在服务器上的角度后500(内部服务器错误)

时间:2016-04-20 06:47:17

标签: angularjs ajax wcf asp.net-ajax

本地,具有相同的参数 - 我的帖子工作就好了。 现在当我在QA版本的服务器上测试时 - 我收到以下错误 " .. Services / ClearingService.svc / FunctionName 500(内部服务器错误)"

我的帖子看起来像那样:

var url = baseService + "Services/ClearingService.svc/functionName";
    var deferred = $q.defer();
    var request = $http({
        method: "post",
        url: url,
        data: {
            payment: payment, isNotifyOnly: isNotifyOnly , isCreateDoc : isCreateDoc
        }
    });

    request.success(function (response) {
        clearingData = response.d;
        deferred.resolve(response);
    });

    request.error(function (response) {
        deferred.reject(response);
    });
    return deferred.promise;

因为我已经提到所有参数都是有效的,我在QA服务器上的版本与我本地环境中的版本相同。

我认为它与WCF定义有关。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您似乎缺少标题信息,并且序列化了您发布的参数。 你在哪里

data: {
    payment: payment, isNotifyOnly: isNotifyOnly , isCreateDoc : isCreateDoc
}

将其更改为:

data: $httpParamSerializer({
    payment: payment, isNotifyOnly: isNotifyOnly , isCreateDoc : isCreateDoc
    }),
headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
    }

我个人通常使用$ .param代替$ httpParamSerializer,这对我有用。但是。$ .param是一个Jquery函数,$ httpParamSerializer是角度等价,完全相同。只是不要忘记注入$ httpParamSerializer函数。