2015-12-17 7 views
5

मैं इस हालिया पोस्ट के समाधान के लिए काम कर रहा था: Repeating a function using array of values और ऐसा करने में, मैंने कोड के निम्नलिखित भाग को एक साथ जोड़ दिया।एजेक्स त्रुटि परिणाम सफलता समारोह कॉल

<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> 
 
<script> 
 

 
\t var name_list = ['mike','steve','sean','roger']; 
 
\t 
 
\t var successAction = function(name) { 
 
\t \t console.log(name); 
 
\t } 
 
\t 
 
\t name_list.forEach(function(name) { 
 
\t \t jQuery.ajax({ 
 
\t \t \t type: "GET", 
 
\t \t \t url: "https://www.google.com/", 
 
\t \t \t dataType: 'html', 
 
\t \t \t success: successAction(name) 
 
\t \t }); 
 
\t }); 
 
\t 
 
</script>

मैं इस चलाने के लिए और आश्चर्य की बात नहीं निम्न त्रुटि संदेश दिया जाता है:

पार उत्पत्ति अनुरोध अवरोधित: वही मूल नीति https पर दूरस्थ संसाधन पढ़ने की अनुमति नहीं देता: //www.google.com/। (कारण: सीओआरएस हेडर 'एक्सेस-कंट्रोल-अनुमति-उत्पत्ति' गायब)।


मेरा प्रश्न इस है - चार विफलताओं ऐसे में ajax अनुरोध परिणाम के रूप में यह प्रकट होता है, तो क्यों सफलता समारोह में चार बार कहा जाता है और तदनुसार सरणी में प्रत्येक नाम प्रवेश करने?

+1

आप बिना सफलता के कार्य को असाइन करने के बजाय 'सफलता एक्शन (नाम)' 'सफलता 'के वापसी मूल्य को असाइन कर रहे हैं। सही तरीका सिर्फ 'सफलता: सफलता क्रिया' – salc2

+0

सही होनी चाहिए - धन्यवाद, @ salc2 – ThisClark

उत्तर

2
success: successAction(name) 

xxx: successAction(name) 

साथ प्रतिस्थापित किया जा सकता है और यह अभी भी 4 बार प्रिंट आउट होगा। सही वाक्यविन्यास

success: function(name) { successAction(name); } 
+0

या सीधे 'सफलता: सफलता क्रिया' ^^ – moonwave99

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