2012-02-13 16 views
10

मैं jQuery ajax का उपयोग कर इस सरल प्राप्त अनुरोध कर रहा हूँ:ajax jQuery सरल प्राप्त अनुरोध

 $.ajax({ 
      url: "https://app.asana.com/-/api/0.1/workspaces/", 
      type: 'GET', 
      success: function(res) { 
       console.log(res); 
       alert(res); 
      } 
     }); 

यह एक परिणाम के रूप में एक खाली स्ट्रिंग लौटा रहा है। अगर मैं अपने ब्राउज़र में इस लिंक पर जाता हूं, तो मुझे लगता है:

{"status":401,"error":"Not Authorized"} 

जो अपेक्षित परिणाम है। तो यह AJAX का उपयोग क्यों नहीं कर रहा है? धन्यवाद!

+1

आप डेटाप्रकार जोड़ने की कोशिश की है वहाँ हो जाएगा: में वहाँ –

+0

@KaiQing "jsonp", कि isn यहाँ समस्या नहीं है। अन्यथा, सफलता हैंडलर नहीं कहा जाएगा। इसके अलावा, उदाहरण प्रतिक्रिया JSONP प्रतिक्रिया नहीं है। – Brad

+0

@PragmaOnce, अपने हेडर को एक packetsniffer, जैसे Wireshark के साथ जांचें। मुझे संदेह है कि ब्राउज़र से क्या भेजा जा रहा है और AJAX कॉल के बीच आपको कुछ अंतर मिलेगा। – Brad

उत्तर

6

मुझे ऐसा लगता है, यह एक क्रॉस डोमेन मुद्दे के बाद से आप एक अलग डोमेन के लिए अनुरोध करने की अनुमति नहीं कर रहे हैं है।

आप इस समस्या के लिए समाधान करने के लिए है: - एक प्रॉक्सी स्क्रिप्ट का उपयोग, जो आपके अनुरोध को अग्रेषित करेंगे आपके सर्वर पर चल रहा है और प्रतिक्रिया यह ब्राउज़र या के लिए भेजने से संभाल लेंगे - सेवा आप अनुरोध कर रहे हैं चाहिए JSONP समर्थन है। यह एक क्रॉस डोमेन तकनीक है। आप यह http://en.wikipedia.org/wiki/JSONP

1

आप उसी डोमेन और समान पोर्ट से लोड किए गए एप्लिकेशन को AJAX अनुरोध कर सकते हैं।

कि इसके अलावा

, आप dataType JSON जोड़ने अगर आप चाहते हैं परिणाम स्वचालित रूप से deserialized किया जाना चाहिए।

$.ajax({ 
     url: "https://app.asana.com/-/api/0.1/workspaces/", 
     type: 'GET', 
     dataType: 'json', // added data type 
     success: function(res) { 
      console.log(res); 
      alert(res); 
     } 
    }); 

http://api.jquery.com/jQuery.ajax/

1

मुझे लगता है कि समस्या यह है कि सफलता-कार्य में कोई डेटा नहीं है क्योंकि अनुरोध आपके मामले में 401 त्रुटि के साथ टूट जाता है और इस प्रकार कोई सफलता नहीं होती है।

अगर आप का उपयोग

$.ajax({ 
     url: "https://app.asana.com/-/api/0.1/workspaces/", 
     type: 'GET', 
     error: function (xhr, ajaxOptions, thrownError) { 
    alert(xhr.status); 
    alert(thrownError); 
    } 
    }); 

अपने 401 कोड मुझे लगता है कि (this link तो कहते हैं)

2
var dataString = "flag=fetchmediaaudio&id="+id; 

$.ajax 
({ 
    type: "POST", 
    url: "ajax.php", 
    data: dataString, 
    success: function(html) 
    { 
    alert(html); 
    } 
}); 
संबंधित मुद्दे