2009-02-25 7 views
5

मैं जावास्क्रिप्ट से एक वेब सेवा विधि कॉल करने की कोशिश कर रहा हूं:विंडोज प्रमाणीकरण चालू होने पर वेब सेवा को कॉल करने के लिए AJAX का उपयोग करना?

function Search() { 

     var context = new Object; 
     context.Filter = "Test"; 

     SearchService.GetSearch(context, onSuccess, onFailed); 
    } 

    function onSuccess(result) { 
     // userContext contains symbol passed into method 
     var res = document.getElementById("resultsDiv"); 
     res.innerHTML = result; 
    } 

    function onFailed(result) { 
     var res = document.getElementById("resultsDiv"); 
     res.innerHTML = result.get_message(); 
    } 

यहां वेब सेवा हस्ताक्षर है:

[WebMethod] 
    public SearchComboBoxItemData[] GetSearch(object context) 
    { 

जब मैं प्रपत्र प्रमाणीकरण का उपयोग करता हूं और वेब सेवा में अनाम पहुंच की अनुमति देता हूं, तो सब कुछ ठीक काम करता है ।

हालांकि, जब मैं एप्लिकेशन के लिए विंडोज प्रमाणीकरण का उपयोग करता हूं, लेकिन केवल webservice के लिए अनाम पहुंच की अनुमति देता है, जावास्क्रिप्ट से वेब सेवा को कॉल करने से निम्न त्रुटि फेंकता है:

अमान्य वेब सेवा कॉल, पैरामीटर के लिए अनुपलब्ध मान: ' संदर्भ '।

मैंने देखा एक और बात यह है कि यह फ़ायरफ़ॉक्स में दोनों तरीकों से ठीक काम करता है। मैं आईई 7 पर त्रुटि देख रहा हूँ।

किसी संभावित समाधान पर कोई विचार?

+0

क्या यह IE से काम करता है जब आप सेवा के लिए अज्ञात और प्रमाणीकृत पहुंच दोनों सक्षम करते हैं? –

+0

क्या आपको इस समस्या का समाधान मिला, मुझे एक ही समस्या है। धन्यवाद। – Picflight

उत्तर

0

मुझे लगता है कि आप एएसपी.NET अजाक्स का उपयोग कर रहे हैं।

आप जोड़ने की कोशिश कर सकते हैं: अपने web.config फ़ाइल के मॉड्यूल अनुभाग के लिए

preCondition="integratedMode" 

विशेषता।

आशा इस

0

ऐसा लगता है आप एकीकृत प्रमाणीकरण उपयोग कर रहे हैं मदद करता है, और IE में लॉग इन किया है, बल्कि Firefox नहीं है। आप उस उपयोगकर्ता नाम को देखना चाहेंगे जो आईई लॉग इन है।

इसके अलावा, की तर्ज पर कुछ:

var temp = ""; 
for(prop in context){ 
    temp +=prop+"= "+context[prop]+"\n"; 
} 
alert(temp); 

सिर्फ किस संदर्भ में शामिल है देखने के लिए।

संबंधित मुद्दे