मैं एक स्व-निर्मित एपीआई के लिए उपभोक्ता पर काम कर रहा हूं और प्राधिकरण शीर्षलेख सेट करने के साथ गंभीर कठिनाइयों का सामना कर रहा हूं। मैं अजाक्स अनुरोधों के लिए JQuery का उपयोग कर रहा है, लेकिन 'beforeSend' सब पर काम नहीं करता है (Fiddler का उपयोग कर अनुरोध की जांच के लिए)अजाक्स प्रमाणीकरण अनुरोध शीर्षलेख बार-बार विफल हो जाते हैं
यह मेरा beforeSend कोड है:
$.ajax({
type: "GET",
url: url+"/Projects",
contentType: "application/json; charset=utf-8",
beforeSend: function (req) {
req.setRequestHeader("Authorization", AuthBuilder(username, password));
},
success: function (result) {
alert("success");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("fail");
}
});
खैर अगर जो विफल रहता है आप क्या करते हैं? ajax अनुरोध भेजने के लिए पुराने तरीके से करने के लिए वापस जाओ ... अच्छी तरह से यह या तो काम नहीं करता है ...
यह मेरा नियमित कोड है:
function GET(address, callback, error) {
Request = getXMLHttpObject();
Request.open("GET", url + address, true);
var base64 = Base64.encode(username + ":" + password);
alert(base64);
Request.setRequestHeader("Authorization", "Basic " + base64);
Request.send();
Request.onreadystatechange = function() {
//alert(Request.readyState+" code "+Request.status);
if (Request.readyState == 4 && Request.status == 200) {
callback(jQuery.parseJSON(Request.responseText));
} else if (Request.readyState == 4 && Request.status >= 400) {
error(Request.status, Request.statusText);
}
}
}
तथ्य यह है कि मैं कर रहा हूँ कोई आपत्ति नहीं है विशेष रूप से जेसन के लिए नहीं पूछना क्योंकि सेवा डिफ़ॉल्ट द्वारा जेसन लौटाती है।
अतिरिक्त जानकारी में:
- मूल कोई फर्क नहीं पड़ता, सेवा सभी मूल (परीक्षण किया गया है और इस बात की पुष्टि)
- प्राधिकरण जब (अन्य ग्राहकों में परीक्षण) हेडर द्वारा निर्धारित काम करता है की अनुमति देता है
- प्राधिकरण हेडर बस नहीं भेजा जाता है
- AuthBuilder (उपयोगकर्ता नाम, पासवर्ड)) मूल प्रमाणीकरण हेडर सामग्री
- getXMLHttpObject (के सही स्वरूप देता है) बस कुछ नकल है पेस्ट कोड और
कोई विचार?