【问题标题】:ajax error results in success function callajax错误导致函数调用成功
【发布时间】:2015-12-17 01:17:16
【问题描述】:

我正在为最近的这篇帖子寻找解决方案:Repeating a function using array of values,在此过程中,我将以下代码拼接在一起。

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

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

我运行这个程序,毫无疑问会返回以下错误消息:

跨域请求被阻止:同源策略不允许读取 https://www.google.com/ 上的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。


我的问题是这样的 - 如果 ajax 请求导致出现这样的四次失败,那么为什么成功函数调用了四次并相应地记录了数组中的每个名称?

【问题讨论】:

  • 您将successAction(name) 的返回值分配给success,而不是分配函数本身而不调用它。正确的方式一定是success: successAction
  • 对,谢谢,@salc2

标签: javascript jquery ajax


【解决方案1】:
success: successAction(name) 

可以替换为

xxx: successAction(name)

它仍然会打印出 4 次。正确的语法应该是

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

【讨论】:

  • 或者直接success: successAction^^
猜你喜欢
  • 2013-01-13
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
相关资源
最近更新 更多