2016-04-20 3 views
0

локально, с теми же параметрами - моя почта работает нормально. теперь, когда я проверить его на наших серверах в версии QA - я получаю следующую ошибку «..Services/ClearingService.svc/FunctionName 500 (Внутренняя ошибка сервера)»угловой пост 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.

любые предложения?

ответ

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.

Смежные вопросы