Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery调用PostWebAPI方法_Jquery_Asp.net_Json_Web Services_Asp.net Web Api - Fatal编程技术网

使用jquery调用PostWebAPI方法

使用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"

我有一个web方法,如下所示

    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);
    }
});