के साथ AJAX पोस्ट पर हमेशा सफलता मुझे ग्राहक पक्ष पर AJAX पोस्ट पर statusCode=200
मिलता है, जबकि सर्वर HttpStatusCode.Unauthorized
के साथ उत्तर देते हैं।HttpResponseMessage 401
मेरे नियंत्रक कोड:
public class AccountApiController : ApiController
{
public HttpResponseMessage Login(HttpRequestMessage request, [FromBody]LoginViewModel loginModel)
{
return request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Unauthorized login.");
}
}
मेरे ajax कोड:
$.ajax({
url: '/api/accountapi/login',
type: 'POST',
data: data
})
.done(function (object, status, xhr) {
alert("Success: " + xhr.status + " : " + xhr.statusText);
})
.always(function (object) {
$("#output").text(JSON.stringify(object, null, 4));
});
परिणाम: पाठ के साथ चेतावनी Success: 200 : OK
और साथ उत्पादन खिड़की:
{
"Message": "Unauthorized login."
}
तो, मैं प्राप्त कर सकते हैं पाठ त्रुटि संदेश, लेकिन मुझे त्रुटि को संभालने के लिए HttpStatusCode प्राप्त करने की आवश्यकता है बयान। कृपया मेरी मदद करें।
इस मुद्दे और ब्रॉक एलन से सुरुचिपूर्ण समाधान के बारे में अधिक जानकारी: http://brockallen.com/2013/10/27/using-cookie-authentication-middleware-with-web-api-and-401-response-codes/
अनुरोध/प्रतिक्रिया गुण देखने के लिए अपने डेवलपर उपकरण का प्रयोग करें। क्रोम में नेटवर्क टैब पर जाएं, अनुरोध करें, अनुरोध यूआरएल और स्टेटस कोड का निरीक्षण करें। –
मुझे मिला: 'अनुरोध यूआरएल: http: // localhost: 31757/api/accountapi/लॉगिन अनुरोध विधि: POST स्थिति कोड: 200 ठीक' और 'एक्स-प्रतिसाद-जेएसओएन: {" स्थिति ": 401," हेडर ": {" स्थान ":" http: \/\/स्थानीय होस्ट: 31757 \/खाते \/लॉग इन ReturnUrl =% 2Fapi% 2Faccountapi% 2Flogin "}}'। JSON उत्तर में खोदने का सही तरीका दिखता है :) – Valin