2015-12-17 21 views
5

Tôi đang làm việc hướng tới giải pháp cho bài đăng gần đây: Repeating a function using array of values và khi làm như vậy, tôi đã ghép lại đoạn mã sau đây.kết quả lỗi ajax trong chức năng thành công gọi

<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>

tôi chạy này và không ngạc nhiên khi được thông báo lỗi sau đây được trả về:

Cross-Origin Yêu cầu Bị chặn: The Origin Policy Same không cho phép đọc các tài nguyên từ xa tại https: //www.google.com/. (Lý do: CORS header 'Access-Control-Allow-Origin' bị thiếu).


Câu hỏi của tôi là này - Nếu kết quả yêu cầu ajax trong bốn thất bại như nó xuất hiện, thì tại sao là chức năng thành công được gọi là bốn lần và tương ứng đăng nhập mỗi tên trong mảng?

+1

bạn chỉ định giá trị trả về 'successAction (name)' thành 'success' thay vì gán chính hàm đó mà không gọi hàm. Cách đúng phải là 'thành công: thành côngHành động ' – salc2

+0

đúng - thanks, @ salc2 – ThisClark

Trả lời

2
success: successAction(name) 

có thể được thay thế bằng

xxx: successAction(name) 

và nó vẫn sẽ in ra 4 lần. Cú pháp chính xác phải là

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

Hoặc trực tiếp' thành công: successAction' ^^ – moonwave99

Các vấn đề liên quan