2009-04-12 21 views
5

मैं इस

var searchurl="http://mysite.com/searchpath?q=test"; 
$.ajax({ 
    type: "GET", 
    url: searchurl, 
    cache: false, 
    dataType : "jsonp", 
    async : false, 
    success: function(data){ 
     alert("success"); 
    } 
}); 
alert("outside ajax"); 

समस्या की तरह एक कोड का टुकड़ा है कि मैं काम पर async नहीं दिखाई दे रहा है। "अजैक्स के बाहर" मुझे मिलने वाला पहला पॉपअप और दूसरा "सफलता" है। क्या कुछ स्पष्ट है कि मुझे याद आ रही है?

मेरी टिप्पणी से Anothny के उत्तर के लिए

मेरा परीक्षण env जोड़ना XP SP2 जीत है, एफएफ 3.0.8/डब्ल्यू Firebug + आईई 8 और JQuery v1.3.2। कुछ भी स्पष्ट नहीं है कि मैं फायरबग से ढूंढ पा रहा था।

क्या आप इस यूआरएल के साथ कोड के ऊपर प्रयास करने के इच्छुक होंगे "http://pipes.yahoo.com/pipes/pipe.run?_id=1nWYbWm82xGjQylL00qv4w&_render=json&textinput1=obama&_callback=?"

+0

"jsonp" के बिना प्रयास करें? हो सकता है कि jsonp async –

+0

जेसन के साथ असंगत है, जो मदद नहीं करता है। –

+0

JSONP तकनीकी रूप से AJAX का उपयोग नहीं करता है, यह एक 'स्क्रिप्ट' टैग का उपयोग करता है जो इसे दस्तावेज़ के HEAD में एम्बेड करता है। यह आपके पास एकमात्र समस्या नहीं हो सकती है, लेकिन यह निश्चित रूप से एक समस्या है ... – mishac

उत्तर

6

ठीक है, आपके पास एक तुल्यकालिक jsonp अनुरोध नहीं हो सकता है। जेसनपी लागू करने का तरीका क्रॉस-डोमेन एक्सेस की अनुमति देने के लिए एक स्क्रिप्ट टैग हैक के माध्यम से है। तो $ .ajax बस async विशेषता को अनदेखा करता है क्योंकि यह सिंक्रोनस जेसनपी अनुरोध नहीं कर सकता है।

एक साइड नोट के रूप में, आपको & सिंक्रोनस AJAX अनुरोधों से बचने का प्रयास करना चाहिए। हालांकि वे पहले डिजाइन में सरल लग सकते हैं, लेकिन वे नेटवर्क प्रतिधारण के मामले में ठंडे ब्राउज़र को समाप्त करते हैं और बहुत ही अप्रिय उपयोगकर्ता अनुभव के लिए बनाते हैं।

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