2015-10-05 11 views
5

का उपयोग कर रहा हूँ जहाँ मेरे प्रपत्र तीन क्षेत्रोंबेसिक प्रमाणीकरण jQuery/ajax

  1. उपयोगकर्ता नाम
  2. पासवर्ड
  3. अनुदान प्रकार

है एक रूप मैं प्रस्तुत करने पर बुनियादी प्रमाणीकरण पृष्ठ बनाने के लिए कोशिश कर रहा हूँ बस जेएसओएन प्रारूप में मेरे एचटीएमएल पर एक सर्वर से लौटा प्रतिक्रिया प्रदर्शित करना चाहते हैं। वेब सेवा के लिए मेरा AJAX कॉल भी प्राधिकरण हेडर सेट करने की आवश्यकता है। लेकिन किसी भी तरह हेडर सेट नहीं हो रहे हैं। मैं

beforeSend : function(xhr) 
    { 
     xhr.setRequestHeader('Authorization', "Basic ******"); 
     xhr.setRequestHeader("contentType", "application/json;charset=UTF-8"); 
    } 

कोशिश कर रहा हूँ लेकिन जब मैं कंसोल में कोड डीबग ऐसा लगता है ब्रेकप्वाइंट कभी नहीं इस समारोह में चला जाता है। मैं अजाक्स के लिए नौसिखिया हूं और इंटरनेट पर googling द्वारा कोड नीचे कोशिश की है। मैं नीचे पूरा कोड पोस्ट कर रहा हूं।

कोड:

$(document).ready(function() { 

    // process the form 
    $('form').submit(function(event) { 

     // get the form data 
     var formData = { 
      'username': $('#username').val(), 
      'password': $('#password').val(), 
      'grant_type': $('#grantType').val() 
     }; 

     // process the form 
     $.ajax({ 
      type  : 'POST', 
      url   : 'http://localhost:9090/oauth/token', 
      beforeSend: function (xhr) 
      { 
       xhr.setRequestHeader("Authorization", "Basic ******"); 
       xhr.setRequestHeader("contentType", "application/json;charset=UTF-8"); 
      }, 
      data  : formData, // our data object 
      dataType : 'json', // what type of data do we expect back from the server 
         encode   : true 
     }) 
      // using the done promise callback 
      .done(function(data) { 

       // log data to the console so we can see 
       console.log(data); 
       alert(data); 

       // here we will handle errors and validation messages 
      }) 

      .fail(function (jqXHR, textStatus){ 
       alert('Status : ' + textStatus + '' + JSON.stringify(jqXHR)); 
      }); 

     // stop the form from submitting the normal way and refreshing the page 
     event.preventDefault(); 
    }); 

}); 

यह मेरे कोड में हेडर स्थापित करने के लिए नहीं पैदा कर क्या। कृपया मुझे सही करें।

कंसोल (गूगल क्रोम) नेटवर्क टैब में में, मैं अनुरोध हेडर

Accept:*/* 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:en-US,en;q=0.8 
Access-Control-Request-Headers:accept, authorization, content-type, contenttype 
Access-Control-Request-Method:POST 
Connection:keep-alive 
Host:192.168.1.128:9090 
Origin:null 
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 

और त्रुटि नीचे कंसोल में प्रकट होता है नीचे देख सकते हैं। enter image description here

और जब से गूगल क्रोम के लिए उन्नत बाकी ग्राहक विस्तार ही एपीआई बुला यह मुझे पता चलता सभी हेडर

User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo 
contentType: application/json;charset=UTF-8 
Authorization: Basic ********** 
Content-Type: application/x-www-form-urlencoded 
Accept: */* 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8 

मैं बस फ़ाइल प्रोटोकॉल का उपयोग कर अपने वेब पृष्ठ चल रहा हूँ।

पूर्व: file:///E:/Mahendra/Practice%20Example/Test/OauthTest.html

मैं अगर यह एक समस्या का कारण है यकीन नहीं है।

+1

संभावित डुप्लिकेट [AJAXSetup (पहले काम नहीं कर रहा है] (http://stackoverflow.com/questions/19361908/ajaxsetup-beforesend-not-working) – abc123

+0

यह भी एक कॉरस मुद्दा प्रतीत होता है, क्रॉस-ओरिजिनल अनुरोध अवरुद्ध, http: // stackoverflow .com/प्रश्न/5750696/कैसे-टू-ए-क्रॉस-मूल-संसाधन-साझाकरण-कोर-पोस्ट-अनुरोध-काम कर रहे – abc123

उत्तर

0

मैं आमतौर पर इस तरह हेडर जोड़ने (कोड से एक, here "शेयरप्वाइंट में वेब प्रॉक्सी का प्रयोग कर एक दूरस्थ सेवा क्वेरी"):

$.ajax({ 
    url: "../_api/SP.WebProxy.invoke", 
    type: "POST", 
    data: JSON.stringify(
     { 
      "requestInfo": { 
       "__metadata": { "type": "SP.WebRequestInfo" }, 
       "Url": url, 
       "Method": "GET", 
       "Headers": { 
        "results": [{ 
         "__metadata": { "type": "SP.KeyValue" }, 
         "Key": "Accept", 
         "Value": "application/json;odata=verbose", 
         "ValueType": "Edm.String" 
        }] 
       } 
      } 
     }), 
    headers: { 
     "Accept": "application/json;odata=verbose", 
     "Content-Type": "application/json;odata=verbose", 
     "Authorization": "yourkeyvalueforauthorizationEXAMPLE", 
     "X-RequestDigest": $("#__REQUESTDIGEST").val() 
    }, 
    success: successHandler, 
    error: errorHandler 
}); 

मुझे पता है कि यह कैसे जाता है

+0

मैंने कोशिश की लेकिन काम नहीं किया। हो सकता है कि मैं इसे 'फ़ाइल: ///' प्रोटोकॉल का उपयोग कर चला रहा हूं, क्या इससे समस्या आती है? –

+1

@mhendrakawde मुझे यकीन नहीं है कि आपका क्या मतलब है, अगर आपको कोई और जानकारी है जो आपको लगता है कि समस्या हो सकती है तो आपको अपना प्रश्न संपादित करना चाहिए। –

+0

@mhendrakawde फ़ाइल: /// प्रोटोकॉल काम नहीं करता है। आपको इसे कहीं भी http: // localhost होस्ट करने की आवश्यकता होगी – abc123

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