का उपयोग कर वेबएपीआई 2.0 ओविन टोकन अनुरोध मैंने विजुअल स्टूडियो में एक नया वेबएपीआई समाधान बनाया है और कोड के साथ खेल रहा है और समझने के लिए कोड के साथ खेल रहा हूं।JSAP
मेरे पास एक परीक्षण API है जो सभी को एक प्राधिकरण नियंत्रक और अन्य नियंत्रक के साथ चल रहा है जो सभी वास्तविक कार्यक्षमता लागू करता है।
Content-Type: application/x-www-form-urlencoded
अन्यथा मैं सिर्फ वापस कोई त्रुटि मिलती है:
नियंत्रकों (एपीआई) JSON प्राप्त और JSON के साथ उत्तर देने/टोकन request.This के अपवाद के साथ, से सब काम हो गया है।
कोड की धारा है कि इस अंतिम बिंदु बनाता है यह प्रतीत होता है:
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
// In production mode set AllowInsecureHttp = false
AllowInsecureHttp = false
};
यह कॉलिंग इस तरह एक 200 सफलता जवाब में यह परिणाम है, एक वाहक टोकन के माध्यम से:
$("#token_button").click(function()
{
var username = $("#token_email").val();
var password = $("#token_password").val();
postData("Token", "grant_type=password&username=" + username + "&password=" + password, "application/x-www-form-urlencoded", function (data)
{
user = data;
$("#feedback_display").html(user.access_token);
}, function()
{
user = null;
});
});
है जैसे कि यह कॉलिंग इसके परिणामस्वरूप 400 प्रतिक्रियाएं:
$("#token_button").click(function()
{
var username = $("#token_email").val();
var password = $("#token_password").val();
var data = {
"grant_type": "password",
"username": username,
"password": password
}
postData("Token", JSON.stringify(data), "application/json", function (data)
{
user = data;
$("#feedback_display").html(user.access_token);
}, function()
{
user = null;
});
});
प्रतिक्रिया निकाय है:
{"error":"unsupported_grant_type"}
यहां एकमात्र अंतर अनुरोध को प्रेषित करने के लिए उपयोग किया जाने वाला एन्कोडिंग है। हर जगह जहां मैं सभी उदाहरण देखता हूं, इस टोकन का अनुरोध करने के लिए फॉर्म एन्कोडिंग का उपयोग कर रहे हैं।
कोड/एपीआई/खाता/बाहरी लॉजिक के तहत कोड पर ब्रेकपॉइंट रखने पर कभी हिट नहीं होती है।
क्या इस केवल स्वीकार्य फॉर्म एन्कोडिंग का कोई कारण है? और यदि नहीं तो मैं JSON को स्वीकार करने के लिए नियंत्रक को कैसे बदल सकता हूं?
वैकल्पिक रूप से मैंने अभी कुछ बेवकूफ किया है?
'JSON.stringify (डेटा) ' –
धन्यवाद @ गौवरावस्सार जो अब काम करता है। यदि आप इसे उत्तर के रूप में पोस्ट करते हैं तो मैं सही के रूप में चिह्नित करूंगा। मुझे लगता है कि सवाल उठाता है कि मुझे JSON की आवश्यकता क्यों है। अन्य अंतराल पर पोस्ट किए गए डेटा को पुन: सक्रिय करें, लेकिन वह नहीं? मैंने अभी इसका परीक्षण किया और मुझे इसकी आवश्यकता है। मैं चारों ओर खुदाई करूँगा और देख सकता हूं कि मैं इसे काम नहीं कर सकता हूं। – Morvael