这是我的wcf网络服务代码
[OperationContract] [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "json2")]
StringMessageJson AddEmployee(EmployeeJson emp);
这是我在服务的cs文件中的代码
public StringMessageJson AddEmployee(EmployeeJson emp)
{
}
在这里,我通过jquery ajax调用webservice方法:
$('document').ready(function ()
{
var emp =
{
ID: '',
EmpName: 'Sk',
EmpID: 'A004',
Username: 'A@a.a',
Password: 'Aaa',
Address: 'Sec-001',
PhoneNumber: '09012312',
MobileNumber: '535345345',
EmpTypeID: '2',
EmpTypeValue: ''
};
var datatosend='{"emp":' + JSON.stringify(emp) + '}';
$.ajax(
{
type: "POST",
url: "http://localhost:6943/EmsRestApi.svc/json2",
data: datatosend,
dataType: "jsonp",
contentType: "application/json; charset=utf-8",
success: function (resp)
{
Console.log(resp);
alert("Message\n'" + resp.Message + "'");
},
error: function (e)
{
//console.log(e);
alert(e);
}
});
$.support.cors = true;
});
运行此操作后,我在Chrome控制台上收到错误消息: -
无法加载资源:服务器响应状态为405(方法不允许)
请帮我摆脱这个问题。
答案 0 :(得分:0)
通过查看上面的代码片段,我可以看到您没有为WCFService WebInvoke属性指定requestformat。
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "json2", RequestFormat=WebMessageFormat.Json)]
当服务器找不到要执行的WCF OperationContract时,会发生这种错误。