เข้าใจกับ jQuery Ajax Cross Domain
หลังจากที่ผมใช้ jQuery เป็น Javascript Framework หลักมาตลอดตอนนี้ ผมพึงได้ทำอะไรใหม่ๆ มากกว่าที่ผมทำอยู่เป็นประจำเช่น การทำ Web Service ที่ Javascript จะต้องเป็นคนเรียก วันนี้ผมก็พึุงได้รู้ว่าจริงๆแล้ว jQuery Ajax ไม่ได้โหลด Cross Domain ได้ทุก function หลังจากลอง Search ดูก็พึุงรู้ว่าจริงๆแล้วตอนนี้มีแค่
- getJSON
- getScript
- $.ajax
เท่านั้นที่ทำได้ โดย $.ajax ก็คือการ setup ให้ datatype เป็น JSONP หรือไม่ก็ Script เท่านั้นถึงทำได้ ดังนั้นเวลาเรียกให้ควร check เรื่องพวกนี้เป็นพิเศษ เพราะการทำภายใต้ domain เดียวกันนั้น คุณสามารถใช้พวก $.get , $.post ได้ตามสะดวก แต่พอจะทำ cross domain แล้วนั้นกลับทำไม่ได้ ดังนั้น ถ้าคิดจะทำ Web Service ที่ Javascript สามารถเรียกได้ ควรทดสอบด้วย getJSON หรือ getScript เท่านั้นครับ
ส่วนถ้าใช้กับพวก Server Side Script จะมีวิธีที่เรียกว่า Proxy ซึ่งทำให้สะดวกในการทำงาน ซึ่งเราสามารถใช้ได้ทุก Ajax เช่น $.get $.post ก็ใช้ได้หมด โดยมีตัวอย่างที่ทำเข้าใจอย่างมากของฝรั่งเขา ดูได้ที่นี้เลยครับ
http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html
ปล. สำหรับลิงค์ที่้ให้ไป อ่าน comment ด้วยจะได้เห็นทางเลือกที่เจ๋งๆอีกนิดหน่อย

