2013-05-15 4 views
10

है मुझे यकीन है कि क्यों यह हो रहा है नहीं कर रहा हूँ, लेकिन मैं एक साधारण अजाक्स कोड है:अजाक्स विफल रहता है लेकिन स्थिति कोड अभी भी 200 "ठीक है"

$.ajax({ url: "/javascript/testing.js"}) 
    .done(function(data){ console.log(data) }) 
    .fail(function(jqXHR, textStatus, errorThrown) { 
     console.log(jqXHR); 
    }); 

.fail() मिलता है निष्पादित स्थिति कोड है "ठीक है"। इसके अलावा डेटा responceText में वास्तविक कानूनी डेटा में मौजूद है। ये क्यों हो रहा है?

enter image description here

+0

क्या 'responsceText' है? – karthikr

+0

@ कार्तिकर कानूनी डेटा, 'जावास्क्रिप्ट' मेरे मामले में। त्रुटि 'parseerror' – Kivylius

+0

@ जेसिका क्या आप ब्राउजर में अनुरोध की जांच कर सकते हैं कि कोई अतिरिक्त जानकारी है या नहीं? –

उत्तर

12

आप जावास्क्रिप्ट फ़ाइल को पार्स करने चाहते हैं, तो डेटाप्रकार script होना चाहिए:

$.ajax({ url: "/javascript/testing.js", dataType: "script" }) 
.done(function(data){ console.log(data) }) 
.fail(function(jqXHR, textStatus, errorThrown) { 
    console.log(jqXHR); 
}); 

आप अभी भी एक parserError मिल रहा है तो फिर वहाँ अपने testing.js फ़ाइल के साथ एक समस्या है।

आप इसे पार्स करने के लिए और बस इसे पुनः प्राप्त नहीं करना चाहते हैं, तो डेटाप्रकार text होना चाहिए:

$.ajax({ url: "/javascript/testing.js", dataType: "text" }) 
+0

test.js सिर्फ एक नियमित जावास्क्रिप्ट फ़ाइल है। मैं सामग्री को केवल 'test' पर प्रतिस्थापित करता हूं और यह अभी भी काम नहीं कर रहा है। – Kivylius

+0

बस 'test' मान्य जावास्क्रिप्ट नहीं है। यदि आप जावास्क्रिप्ट के रूप में इसे पार्स किए बिना इसे पुनर्प्राप्त करना चाहते हैं, तो डेटा टाइप को 'टेक्स्ट' पर सेट करें। मैंने इसे प्रतिबिंबित करने के लिए अपना उत्तर अपडेट कर दिया है। – nullability

+1

डेटा टाइप: "टेक्स्ट" काम करता है, ठीक है, धन्यवाद +1; – Kivylius

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