मैं क्रॉस डोमेन http अनुरोध (allowOrigins = *) को अनुमति देने के लिए अपने जेटी सर्वर को कॉन्फ़िगर करता हूं और क्रॉस डोमेन प्रमाणीकरण (अनुमति प्रमाणपत्र = सत्य) को अपने क्रॉसऑरिगिनफ़िल्टर का उपयोग करने की अनुमति देता हूं। प्रमाणीकरण आवश्यकता के बिना क्रॉस डोमेन http अनुरोध ठीक काम करते हैं। अब जब http कॉल की बात आती है जिसके लिए प्रमाणीकरण की आवश्यकता होती है तो यह JQuery का उपयोग करके काम नहीं करता है। मैं निम्नलिखित कोड का उपयोग करें और इस उदाहरण का पालन किया: http://www.aswinanand.com/2009/01/http-basic-authentication-using-ajax/jquery cross डोमेन प्रमाणीकरण
function login(username, password) {
$.ajax({
type: "GET",
contentType: "application/json",
dataType: "json",
url: url,
beforeSend: function(xhr) {
var base64 = Base64.encode(username + ":" + password);
xhr.setRequestHeader("Authorization", "Basic " + base64);
xhr.withCredentials = true;
},
error: function(data){
alert("error");
},
success: function(data){
alert("success");
}
});
HTTPFox मैं सर्वर के लिए निम्न अनुरोध दिखाई में:
OPTIONS /login HTTP/1.1
...
Access-Control-Request-Method GET
Access-Control-Request-Headers authorization,content-type
सर्वर एक
HTTP/1.1 204 No Content
...
Allow OPTIONS,GET,HEAD
मैं भी साथ प्रतिक्रिया नीचे दिए गए विकल्पों का उपयोग किया, जो कोई फर्क नहीं पड़ता है।
$.ajax({
...
username: username,
password: password,
...
}
त्रुटि फ़ंक्शन हमेशा आग लगती है। किसी को भी पता है कि समस्या क्या हो सकती है?
आप अपनी प्रतिक्रिया हेडर में इस दिखाई दे रही है को शामिल करना चाहिए 'पहुंच-नियंत्रण -Allow-मूल: * '? रास्ते से महान सवाल! StackOverflow में आपका स्वागत है! – jmort253
मुझे लगता है कि यदि आप इस मुद्दे से संबंधित किसी भी स्टैकट्रैक को भी दिखा सकते हैं तो यह सहायक होगा। – jmort253
ठीक है, कृपया यह देखने के लिए जांचें कि क्या हेडर आपकी प्रतिक्रिया में शामिल है या नहीं।यदि नहीं, तो यह संभव है कि सुरक्षा प्रतिक्रिया शीर्षकों को ओवरराइड कर रही हो। आगे डीबग करने के लिए और अधिक लॉग देखने की आवश्यकता है। सौभाग्य! :) – jmort253