在某些浏览器中无法通过Jquery Ajax从web api获取响应

时间:2017-04-25 19:52:30

标签: jquery asp.net ajax asp.net-web-api2

我在我的控制器中有这个动作

public IHttpActionResult PostTour(Tour tour)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        db.Tours.Add(tour);
        db.SaveChanges();

        //return CreatedAtRoute("DefaultApi", new { id = tour.Id }, tour);
        return Ok(tour.Id);
    }

和WebApiConfig就像这样

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
        config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

我使用Jquery Ajax发送这样的请求

$(function () {

        var Tour = { 'TourName': "Tour1", 'UserName': "Mohammad223", 'Password': "Basiri@12", 'status': "0", "state": "false" };

        $.ajax({
            type: "POST",

            cache: false,


            data: (Tour),

            url: "http://localhost:53206/api/Tours",
            dataType: 'json',
            success: function (d) {
                data = JSON.parse(d);
                alert("Done");
            },
            error: function (result) {

            }
        });
    });

当我使用Microsoft Edge运行Ajax方法时,此功能有效,但当我使用谷歌浏览器或Firefox时,该功能无法正常工作,警报将不会显示 提前谢谢

0 个答案:

没有答案