2013-10-03 6 views
44

यहाँ मेरी कोडJSONP दिखा कॉल "Uncaught सिंटैक्स त्रुटि: अनपेक्षित टोकन:"

$.ajax({ 
     url: 'https://api.flightstats.com/flex/schedules/rest/v1/json/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59&callback=?', 
     dataType: 'JSONP', 
     jsonpCallback: 'jsonCallback', 
     type : 'GET', 
     async: false, 
     crossDomain: true, 
     success: function(data) { 
      console.log(data); 
     } 
    }); 

क्या मैं गलत कर रहा हूँ है? क्या मुझे यहां कुछ भी जोड़ना या बदलना चाहिए? किसी भी मदद की सराहना की जाएगी। धन्यवाद

+0

कृपया प्रकार से पहले खाली स्थान हटाएं: 'प्राप्त', –

+2

यह JSON है, अपने यूआरएल पर jsonp नहीं। – Johan

+0

'async: false' JSONP के साथ काम नहीं करता है। आप क्रॉस-डोमेन अनुरोधों के लिए 'jsonpCallback' और' callback =? '' CrossDomain' की आवश्यकता क्यों नहीं कर रहे हैं (विडंबना यह नहीं है?) –

उत्तर

51

कार्य बेला:

http://jsfiddle.net/repjt/

$.ajax({ 
    url: 'https://api.flightstats.com/flex/schedules/rest/v1/jsonp/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59', 
    dataType: 'JSONP', 
    jsonpCallback: 'callback', 
    type: 'GET', 
    success: function (data) { 
     console.log(data); 
    } 
}); 

मैं, मैन्युअल callback को कॉलबैक स्थापित करने के लिए किया था के बाद से है कि सभी दूरस्थ सेवा का समर्थन करने लगता है। मैंने यह निर्दिष्ट करने के लिए यूआरएल भी बदल दिया कि मैं जेसनपी चाहता था।

+415

मुझे यह बेहद विडंबनापूर्ण लगता है कि आपका उपयोगकर्ता नाम "जेसन पी" है। :) – JaredCubilla

+13

बस स्पष्ट होने के लिए, यह पूरी तरह से एक सुंदर * संयोग * है;) लेकिन हे, [मुझे क्या पता है] (https://www.youtube.com/watch?v=Jne9t8sHpUc)। – dbro

+2

क्या आपको कहीं 'कॉलबैक' नामक फ़ंक्शन को परिभाषित करना है? –

18

आप JSONP नहीं, JSON तक पहुंचने का प्रयास कर रहे हैं।

सूचना अपने स्रोत के बीच का अंतर:

https://api.flightstats.com/flex/schedules/rest/v1/json/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59&callback=?

और वास्तविक JSONP (एक रैपिंग समारोह): JSON + CORS/क्रॉस-डोमेन नीति है और आप इस विषय पर बहुत अतः धागे के सैकड़ों मिल जाएगा के लिए

http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=processJSON&tags=monkey&tagmode=any&format=json

खोजें।

+0

मुझे बस इतना करना है कि यूआरएल में जेएसओएनपी निर्दिष्ट करें जैसा कि वर्तमान में यूआरएल में दिखाए गए JSON के रूप में है। शुक्र है, तीसरे पक्ष लिंक पर आधारित जेएसओएनपी का समर्थन करता है –

-2

मैं जवाब में यह

var data = '{"rut" : "' + $('#cb_rut').val() + '" , "email" : "' + $('#email').val() + '" }'; 
var data = JSON.parse(data); 

$.ajax({ 
    type: 'GET', 
    url: 'linkserverApi', 
    success: function(success) { 
     console.log('Success!'); 
     console.log(success); 
    }, 
    error: function() { 
     console.log('Uh Oh!'); 
    }, 
    jsonp: 'jsonp' 

}); 

और संपादित हैडर चलाने

'Access-Control-Allow-Methods' , 'GET, POST, PUT, DELETE'

'Access-Control-Max-Age' , '3628800'

'Access-Control-Allow-Origin', 'websiteresponseUrl'

'Content-Type', 'text/javascript; charset=utf8'

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