'ajax' 调用 Web api 时出现 403 响应

403 Response when making 'ajax' call to web api

我正在调用我的后端来填充一个 observableArray,如下所示:

$.ajax({
    url: 'www.data.net/api/....',
    type: 'GET',
    dataType: 'jsonp',
    crossDomain: true,
    success: function (data) {
        dataHolder(data);
    },
    error: function (xhr, textStatus, errorThrown) {
        console.log(errorThrown);
    }
});

后端方法:

    [Route("Api/mydata/GetMyContent/{postPageName}"), HttpGet]
           public HttpResponseMessage GetMyContent(string postPageName)
            {
                var result = mydataRepository.GetMyContent(postPageName);
                return Request.CreateResponse(result == null ? HttpStatusCode.OK :             
                       HttpStatusCode.Forbidden, result);
    }

改变

result == null ? HttpStatusCode.OK : HttpStatusCode.Forbidden

result != null ? HttpStatusCode.OK : HttpStatusCode.Forbidden

现在,如果您选择的页面没有内容,您的后端方法只会 returns “200 - OK”。否则,如果页面有一些内容,你总是 return 403。

我觉得您可能无意中更改了三元运算符?

也许试试:

    return Request.CreateResponse(result == null ? HttpStatusCode.Forbidden:
                                  HttpStatusCode.OK, result);