ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingใช้ javascript อ่านค่าไฟล์ xml แล้วมีปัญหาเรื่อง Cross Domain ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ใช้ javascript อ่านค่าไฟล์ xml แล้วมีปัญหาเรื่อง Cross Domain ครับ  (อ่าน 2745 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
meemie989
ก๊วนเสียว
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 284



ดูรายละเอียด เว็บไซต์
« เมื่อ: 19 พฤษภาคม 2009, 23:21:51 »

ช่วยทีครับ คือผมใช้ javascript ในการอ่านไฟล์ xml ที่อยู่ต่าง Domain กันนะครับ

แต่เมื่อเอา Code มาไว้ใน Domain เดียวกับไฟล์ xml ก็สามารถอ่านได้
แต่พอเอาไปไว้ต่าง Domain มันจะฟ้องว่า Access to restricted URI denied

ไม่ทราบว่าจะมีวิธีแก้ไขปัญหาดังกล่าวมั้ยครับ


ขอบคุณล่วงหน้าครับ

ลิงค์ด้านล่างนี้ เป็นวิธีอ่านค่าจากไฟล์ xml โดยใช้ javascript ครับ
http://www.d-looks.com/showblog.php?Bid=6069
บันทึกการเข้า

ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #1 เมื่อ: 19 พฤษภาคม 2009, 23:52:01 »

ตั้งแต่หัดเขียน javascript มายังไม่เคยหัดอ่าน xml ด้วย javascript เลยคับ ขอบคุณมากค้าบบ

ปล. ปกติถ้าจำเป็นต้องใช้งาน cross domain ผมจะใช้ JSON อ่ะ แต่ที่เลือกใช้เพราะเป็นแต่ JSON นี่แหละ  Lips Sealed
บันทึกการเข้า

meemie989
ก๊วนเสียว
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 284



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 20 พฤษภาคม 2009, 00:03:01 »

ตั้งแต่หัดเขียน javascript มายังไม่เคยหัดอ่าน xml ด้วย javascript เลยคับ ขอบคุณมากค้าบบ

ปล. ปกติถ้าจำเป็นต้องใช้งาน cross domain ผมจะใช้ JSON อ่ะ แต่ที่เลือกใช้เพราะเป็นแต่ JSON นี่แหละ  Lips Sealed

ขอบคุณมากนะครับ

ช่วยแนะนำ แหล่งศึกษา JSON และวิธีการ cross domain ที่คุณว่าหน่อยได้มั้ยครับ

คือผมยังไม่เคย แตะ JSON เลยอะครับ   Tongue Tongue Tongue
บันทึกการเข้า

Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 79
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 20 พฤษภาคม 2009, 00:05:01 »

No way!

Cross Domian ที่ทำงาน Request ข้ามไซด์ ได้มี อย่างเดียวคือ JSONP ซึ่ง define method เตรียมไว้ให้

ส่วน xml ต้องทำแบบนี้

#File: local-domain/proxy.php
โค๊ด:
<?php
header
(&#39;Content-type: application/xml&#39;);

$daurl "http://......xml";

$handle fopen($daurl"r");

if (
$handle) {
    while (!
feof($handle)) {
        
$buffer fgets($handle4096);
        echo 
$buffer;
    }
    
fclose($handle);
}
?>

แล้ว ค่อยเรียก ไฟล์เราแทน

แหล่งข้อมูลเพิ่มเติม อิอิ ^^
http://www.jquerytips.com/2008/07/20/how-to-use-xpath/
http://www.jquerytips.com/2008/04/26/ajax-cross-domain/
http://www.jquerytips.com/2007/11/22/jquery-xml/
http://www.jquerytips.com/2008/10/12/api-jsonp/
« แก้ไขครั้งสุดท้าย: 20 พฤษภาคม 2009, 00:10:39 โดย Tee++; » บันทึกการเข้า

peglui
คนรักเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 180



ดูรายละเอียด
« ตอบ #4 เมื่อ: 20 พฤษภาคม 2009, 00:14:07 »

ก่อนอื่น ขอ บวก ให้ คุณ ball6847  กับคุณ Tee++ ก่อนเลย  Smiley


กำลังสนใจ JSON อยู่เหมือนกันฮะ ไม่รู้ว่าจะหา Study case หรือว่าอะไรเพื่อเริ่มดี = = งานเร่งซะด้วยสิ  Kiss Kiss Kiss
บันทึกการเข้า
meemie989
ก๊วนเสียว
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 284



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 20 พฤษภาคม 2009, 00:16:19 »

ขอบคุณมากครับ คุณ Tee++

ผมคงต้องเริ่มศึกษา JSON แล้วละ
ใครมีแหล่งความรู้เกี่ยวกับ JSON ช่วยโพสบอกทีนะครับ ขอบคุณมากๆครับ

ปล.ผมกำลังทำโปรเจค OpenSocial คือจะทำ App ที่ต้องเรียกใช้บริการจาก Webservice แบบ REST อะครับ
บันทึกการเข้า

gotdwata
ก๊วนเสียว
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 241



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 20 พฤษภาคม 2009, 00:29:15 »

รู้สึกว่า browser มันจะไม่ยอมให้เราอ่านไฟล์ xml ข้าม server ครับ

วิธีแก้คือ ให้ใช้วิธีอ่านไฟล์ผ่านเว็บของเราเอง

ที่ผมเคยทำเขียนประมาณนี้ คือเขียน javascript อ่านผ่านไฟล์ php ของเว็บเรา

โค๊ด:
header('Content-type: text/xml');

$abcd=$_GET['abcd'];

ใส่เงื่อนไข $abcd ได้ $url ปลายทางที่เราจะไปดูดออกมา

ini_set('user_agent', 'Firefox/3.0.5');
$xml=file_get_contents($url);
echo $xml;

ลองดูนะครับ

**เพิ่มเติม**
$url ที่ใส่ต้องเป็นหน้าที่กด view source แล้วเป็น xml นะครับ
« แก้ไขครั้งสุดท้าย: 20 พฤษภาคม 2009, 00:33:00 โดย gotdwata » บันทึกการเข้า

Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 79
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 20 พฤษภาคม 2009, 00:32:37 »

ลองดูครับ ว่า web service ที่จะเชื่อมเข้าไป มี protocol jsonp ?

เพราะดูจากงานที่จะทำแล้ว ไม่ใช้การอ่าน xml จาก server side script แต่ใช้ client แทน น่าจะทำ app แบบ RIA แหงๆ ถ้าใช้ JSONP จะทำงานรอบเดียว และลด การทำงานจาก server แถม แก้ปัญหาเรื่อง rate limit ได้อีก เพราะใช้ IP ของ Client เป็นคน request เข้าไป

แต่อาจจะมีข้อเสียคือเรื่อง SEO นี่ล่ะ

เพิ่มเติมเผือมีประโยชน์
Ajax Cross domain with ACD (cgi)
http://www.ajax-cross-domain.com/#Examples
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์