2015-12-17 26 views
5

私はこの最近の投稿の解決策に向かって作業していました:Repeating a function using array of valuesとそうすることで、次のコードを縫い合わせました。ajaxエラーが正常に関数呼び出しを呼び出す

<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/。 (理由:CORSヘッダー「Access-Control-Allow-Origin」がありません)。


私の質問

このある - 4つの故障などでのAjaxリクエストの結果は、それが表示される場合は、なぜ4倍と呼ばれる成功の機能があり、それに応じて、アレイ内のそれぞれの名前をログに記録しますか?

+1

でなければなりません。関数自体を呼び出さずに 'successAction(name)'の戻り値を 'success'に代入しています。正しい方法はちょうど成功でなければなりません:successAction' – salc2

+0

ありがとう、@ salc2 – ThisClark

答えて

2
success: successAction(name) 

xxx: successAction(name) 

に置き換えることができ、それはまだ4回をプリントアウトします。正しい構文は

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

または直接 'success:successAction' ^^ – moonwave99