使用jquery调用PostWebAPI方法
我有一个web方法,如下所示使用jquery调用PostWebAPI方法,jquery,asp.net,json,web-services,asp.net-web-api,Jquery,Asp.net,Json,Web Services,Asp.net Web Api,我有一个web方法,如下所示 public HttpResponseMessage PostDeviceControl(DeviceAccessRequest deviceAccessRequest) { var deviceAccessResponse = new DeviceAccessResponse(deviceAccessRequest.RequestId) { Status = "OK"
public HttpResponseMessage PostDeviceControl(DeviceAccessRequest deviceAccessRequest)
{
var deviceAccessResponse = new DeviceAccessResponse(deviceAccessRequest.RequestId)
{
Status = "OK"
};
var response = Request.CreateResponse<DeviceAccessResponse>(HttpStatusCode.OK, deviceAccessResponse);
return response;
}
我在我的WebAPI方法中设置了一个断点,但它没有中断。我的ajax的错误部分被调用
我做错了什么?您是否使用URL访问网页:?看起来像是同源策略问题,请检查浏览器控制台以查看是否存在任何错误我可以访问网页URL,前提是如果我要在浏览器中浏览该URL,它表示请求的资源不支持http方法“GET”。@PapyrusBit如果这是两个不同的项目,并且它们托管在不同的域/端口中,很可能是一个同源策略违反错误,错误消息将在浏览器控制台中使用chrome developer toolbar/FireBug清除我自己尚未测试过,但这篇文章似乎可以帮助您启用CORS:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:55208/");
var request = new DeviceAccessRequest
{
RequestId = Guid.NewGuid().ToString(),
DeviceId = "ACU/B2/01/R1",
AccessType ="Unlock",
LoginId = "tester",
Password = "tester" ,
};
var response = client.PostAsJsonAsync("api/accesspanel", request).Result;
if (response.IsSuccessStatusCode)
{
var deviceAccessResponse = response.Content.ReadAsAsync<DeviceAccessResponse>().Result;
}
}
var request = {
RequestId: "123",
DeviceId: "ACU/B2/01/R1",
AccessType: "Unlock",
LoginId: "tester",
Password: "tester"
};
alert(JSON.stringify(request));
$.ajax({
url: 'http://localhost:55208/api/accesspanel',
type: 'POST',
data: JSON.stringify(request),
contentType: "application/json;charset=utf-8",
success: function (data) {
alert(JSON.stringify(data));
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});