Gọi Ajax Cross-Domain với JSONP

SONP là gì?

Khi bạn sử dụng Ajax bạn không thể gọi sang domain khác (cross domain), để giải quyết vấn đề này bạn có thể sử dụng Proxy để lấy dữ liệu từ server/domain khác sau đó trả về cho server/domain hiện tại nhưng bạn sẽ gặp khó khăn trong việc gọi dữ liệu.

JSONP hoặc JSON with Padding là phương thức dùng để gọi sang server/domain khác (cross domain), dùng JSONP bạn có thể lấy dữ liệu từ server/domain khác để trả về cho client mà không cần phải dùng proxy server.

Bạn có thể đọc thêm về JSONP ở đây

Trả về 1 loạt ảnh từ API của Flickr với JSONP (ví dụ tôi lấy ở trang jquery)

<!DOCTYPE html>
<html>
<head>
  <style>img{ height: 100px; float: left; }</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="images"></div>

<script>
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
  {
    tags: "cat",
    tagmode: "any",
    format: "json"
  },
  function(data) {
    $.each(data.items, function(i,item){
      $("<img/>").attr("src", item.media.m).appendTo("#images");
      if ( i == 3 ) return false;
    });
  });
</script>

</body>
</html>

trong đoạn code trên bạn có thể để ý đến Request Url của tôi có thêm jsoncallback=?
khi bạn sử dụng JSONP thì bạn bắt buộc phải có param này.

http://api.jquery.com/jQuery.getJSON/

Giới thiệu tieuyeuit
Lập trình viên Asp.net Tôi chia sẻ một,bạn chia sẻ một và chúng ta có rất nhiều!

Gửi phản hồi

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Thay đổi )

Twitter picture

You are commenting using your Twitter account. Log Out / Thay đổi )

Facebook photo

You are commenting using your Facebook account. Log Out / Thay đổi )

Connecting to %s

Follow

Get every new post delivered to your Inbox.