【发布时间】: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