Я совершенно новый для мира WCF. Я пытаюсь сделать POST-вызов методу службы WCF и передать ему данные json.
Мой фрагмент кода, как показано ниже:Передача json paramter на wcf rest post post метод
Ajax POST вызов:
function PostJSON() {
var form_data = {
"req_limitmsg_header": {
"brch_code": "784",
"rqst_id": "00129538",
"tnx_id": "20150200008695",
"inp_user_id": "UAT01",
"inp_dttm": "20150311183413",
"Func_code": "6010 ",
"idms_tnx_type_code": "N",
"Spaces": "12",
"prod_ref_id": "12"
} ,
"req_limitmsg_detail": [
{
"jrn_exc_cur_code": "0000",
"jrn_exc_act_no": "019000090000",
"sign of exc_acpt_amt": "+",
"exc_acpt_amt": "0000000000000000",
"sign of jrn_exc_amt": "+",
"jrn_exc_amt": "0000000001500000"
},
{
"jrn_exc_cur_code": "0000",
"jrn_exc_act_no": "019000090000",
"sign of exc_acpt_amt": "+",
"exc_acpt_amt": "0000000000000000",
"sign of jrn_exc_amt": "+",
"jrn_exc_amt": "0000000001500000"
}
]
};
$.ajax({
cache: 'false',
async: 'false',
type: 'POST',
url: "http://localhost:10647/JsonTest.svc/Rest/RequestLimitCheckService",
data: JSON.stringify(form_data),
contentType: "application/json; charset=utf-8",
dataType: 'json',
crossDomain: true,
processData: true,
success: function (data, status, jqXHR) {
if(data != null)
{
alert("NOT NULL");
alert(data.toString());
}
else
{
alert("NULL");
alert(data.toString());
alert(status.toString());
}
},
error: function (response) {
alert(response);
}
});
}
WCF Метод:
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,RequestFormat=WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "RequestLimitCheckService")]
public string RequestLimitCheck(string form_data)
{
//do somethig
}
WCF Интерфейс
[OperationContract]
string RequestLimitCheck(string form_data);
Что происходит, я всегда получаю пустую строку. Я также попытался указать стиль строки строки запроса, но это бесполезно. Он работает только отлично, если я задаю класс для приема данных json. Пожалуйста, дайте мне знать, если я что-то делаю неправильно или что-то не хватает.
@ Sandeep Я попытался удалить JSON.stringify (form_data) и использовал просто form_data, но он даже не попал в метод WCF. – Trupti
также я упомянул тип формата запроса в методе WCF (см. Выше фрагмент кода), но он не работает – Trupti
http://www.codeproject.com/Articles/722874/Post-JSON-data-to-WCF-RESTful- Service-using-jQuery Используйте ссылку выше для примера кода, который пытается достичь аналогичной функциональности. Надеюсь, это поможет. –