Yii Framework Forum: استفاده از آدرس های خارجی - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

استفاده از آدرس های خارجی

#1 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 03 June 2013 - 03:37 AM

با سلام و خسته نباشید به همه دوستان
من تو یکی از پروژه هام قصد دارم یک سری داده جیسون رو از یک وبسایت دیگه ای بگیرم و به صورت ایجکس تو صفحه خودم استفاده کنم ولی جی کوری و تمامی عناصر ییی که از ایجکس استفاده میکنند اجازه این کار رو بهم نمیده.
دوستانی که در این زمینه اطلاعاتی دارند لطفا راهنمایی کنند.

0

#2 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 08 June 2013 - 03:33 AM

کسی نبود که قبلا از این استفاده کرده باشه؟؟؟؟ ???
0

#3 User is offline   faridplus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 93
  • Joined: 28-March 12

Posted 09 June 2013 - 04:51 AM

View PostMahmood3D, on 03 June 2013 - 03:37 AM, said:

با سلام و خسته نباشید به همه دوستان
من تو یکی از پروژه هام قصد دارم یک سری داده جیسون رو از یک وبسایت دیگه ای بگیرم و به صورت ایجکس تو صفحه خودم استفاده کنم ولی جی کوری و تمامی عناصر ییی که از ایجکس استفاده میکنند اجازه این کار رو بهم نمیده.
دوستانی که در این زمینه اطلاعاتی دارند لطفا راهنمایی کنند.




درسته که Yii این امکان رو به صورت پیش فرض نداره اما jQuery که داره!
برای این کار راه حل های مختلفی وجود داره که توی همشون نکته اصلی استفاده از JSONP هست. ساده ترین راه حلش میتونه این باشه:


$.getJSON("http://anothersite.com/something.php?callback=?", function(data){    alert(JSON.stringify(data)); });

توضیح بیشتر در مورد JSONP:
http://api.jquery.com/jQuery.ajax/


What you give is what you get (WYGIWYG)

If you liked my post, just give it a +1. that's all!
0

#4 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 09 June 2013 - 08:25 AM


منم توی جستجوهایی که داشتم به این نتیجه رسیدم که از JSONP استفاده کنم ولی تا جایی که فهمیدم یکی از Yahoo Apps ها هست که ازش نتونستم جواب بگیرم.
یعنی درخواست ارسال میشه ولی جوابی براش نمیاد!!!!

0

#5 User is offline   faridplus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 93
  • Joined: 28-March 12

Posted 09 June 2013 - 10:18 AM


منظورتون رو از Yahoo apps درست متوجه نشدم تا اونجایی که من میدونم JSONP ربطی به Yahoo نداره و توسط تیم jQuery پیاده شده اما حالا اگر ایده اصلیش ماله Yahoo بوده دیگه نمیدونم!
کدی که استفاده می کنید چیه؟ هم کد jQuery شما و هم کد سمت سرور اون سایت که json رو میفرسته؟ تا کدها رو قرار ندید من نمیتونم کمک زیادی بهتون بکنم...


What you give is what you get (WYGIWYG)

If you liked my post, just give it a +1. that's all!
0

#6 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 10 June 2013 - 04:57 AM

دوست عزیز برای مثال من تو سایت زیر یک سری اطلاعات دارم و میخوام ازشون هم استفاده میکنم.
برای مثال من این دستور رو مینویسم ولی پاسخی نمیگیرم:

$.getJSON("http://www.spzco.com/shop/admin/transactions/get_valid_product.php?callback=?", 
function(data){    
alert(JSON.stringify(data)); 
});

0

#7 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 10 June 2013 - 05:00 AM

تو حالت عادی که اطلاعات به صورت JSON ‌ارسال میشه تو فایر باگ اطلاعات ارسالی رو نشون میده و پاسخی نیست ولی وقتی که به حالت JSONP‌ ارسال میشه دیگه هیچ چیزی حتی تو فایر باگ هم نشون نمیده

0

#8 User is offline   faridplus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 93
  • Joined: 28-March 12

Posted 10 June 2013 - 06:28 AM

View PostMahmood3D, on 10 June 2013 - 05:00 AM, said:

تو حالت عادی که اطلاعات به صورت JSON ‌ارسال میشه تو فایر باگ اطلاعات ارسالی رو نشون میده و پاسخی نیست ولی وقتی که به حالت JSONP‌ ارسال میشه دیگه هیچ چیزی حتی تو فایر باگ هم نشون نمیده



خروجی که این آدرس تولید میکنه اشتباهه یعنی JSON هست اما JSONP نیست! الان خروجی شما این شکلیه:

{"usertype":"nothing","data":....}
در صورتی که درستش اینه:

jQuery2384794323232842({"usertype":"nothing","data":....});


jQuery2384794323232842 یه تابع تصادفی هست که jQuery تولید میکنه و به عنوان یه query string (که همون callback هست) به اون سایت میفرسته بنابراین کد سمت سرور اون سایت ایراد داره و باید اونو اصلاح کنید تا خروجی JSON رو بذاره داخل اون تابع


What you give is what you get (WYGIWYG)

If you liked my post, just give it a +1. that's all!
0

#9 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 11 June 2013 - 12:40 AM

خب بالاخره جی کوری باید یک خروجی بگیره یا نه؟؟
این اصلا اون خروجی رو هم نمیگیره.
درضمن اون آدرس یک نمونه بود. من میخوام از یک سایتی که شبیه این داده هارو به صورت جیکوری برای یک گریدویو تو دات نت میفرسته رو بگیرم و تو سایت خودم نشون بدم. اینم بگم که دسترسی به سورس اون سایت هم ندارم.

0

#10 User is offline   faridplus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 93
  • Joined: 28-March 12

Posted 11 June 2013 - 03:19 AM

View PostMahmood3D, on 11 June 2013 - 12:40 AM, said:

خب بالاخره جی کوری باید یک خروجی بگیره یا نه؟؟
این اصلا اون خروجی رو هم نمیگیره.
درضمن اون آدرس یک نمونه بود. من میخوام از یک سایتی که شبیه این داده هارو به صورت جیکوری برای یک گریدویو تو دات نت میفرسته رو بگیرم و تو سایت خودم نشون بدم. اینم بگم که دسترسی به سورس اون سایت هم ندارم.



این که شما نتیجه رو نمیبینید چند تا احتمال وجود داره:
۱- شاید قبل ازگرفتن خروجی شما باید توی اون سایت login بشین و username یا password یا token یا .... همراه درخواست ارسال کنید در این صورت باید با اونا تماس بگیرید و راهنمایی بخواید
۲- شاید syntax خروجی اون سایت ایراد داشته باشه که در این صورت حتی اگر خروجی هم بده ج.ن jquery نمیتونه اونو parse کنه هیچی نشون نمیده و ارور میده (با firebug->console چک کنید) دراین صورت راه حل همونی هست که توی پست قبلیم گفتم
۳- اون سایت اصلا JSONP رو ساپورت نمیکنه!
۴- آدرس شما اشتباهه
۵- سایت اونا down شده
۶- ترکیبی از حالتهای بالا ;D
اون آدرس رو یه بار با خود browser باز کنید ببینید اصلا چیزی توی صفحه نمایش میده اگر داد اینجا بذارید


What you give is what you get (WYGIWYG)

If you liked my post, just give it a +1. that's all!
0

#11 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 14 June 2013 - 02:27 AM

برای نمونه همون وب سایتی که بالا آدرسش رو توی دستور نوشته بودم رو اینجا قرار میدم

آدرس:
http://www.spzco.com....php?callback=?

خروجی:
{"usertype":"nothing","data":[{"product_id":"11924","product_title":"\u0627\u0641 \u0627\u0645 \u0637\u0631\u062d \u0645\u0627\u0634\u064a\u0646 \u062d\u0633\u0627\u0628 \u0641\u0648\u0644\u062f\u0631\u064a","imaget":null,"single_price":"17000","score":"160","stock":"10","visit":"0"},{"product_id":"11923","product_title":"\u06a9\u0627\u0631\u062a \u0627\u064a\u0646\u062a\u0631\u0646\u0627\u0644 \u0635\u062f\u0627 H.B","imaget":null,"single_price":"22000","score":"203","stock":"10","visit":"0"},{"product_id":"11922","product_title":"\u06af\u064a\u0645 \u067e\u062f \u0641\u0631\u0645\u0627\u0646\u064a","imaget":null,"single_price":"20500","score":"186","stock":"10","visit":"0"},{"product_id":"11921","product_title":"\u06af\u064a\u0645 \u067e\u062f \u0641\u0631\u0645\u0627\u0646\u064a","imaget":null,"single_price":"110000","score":"1010","stock":"1","visit":"0"},{"product_id":"11920","product_title":"\u0641\u064a\u0644\u062a\u0631 \u0627\u0644 \u0633\u064a \u062f\u064a 15 \u0644\u067e \u062a\u0627\u067e","imaget":null,"single_price":"5000","score":"43","stock":"10","visit":"0"},{"product_id":"11919","product_title":"\u0647\u0627\u0628 \u064a\u0648 \u0627\u0633 \u0628\u064a \u0631\u0646\u06af\u064a","imaget":null,"single_price":"9000","score":"77","stock":"10","visit":"0"},{"product_id":"11918","product_title":"\u0647\u0627\u0628 4 \u067e\u0648\u0631\u062a\u0647 \u06a9\u0627\u0628\u0644\u064a","imaget":null,"single_price":"7500","score":"66","stock":"10","visit":"0"},{"product_id":"11917","product_title":"\u0631\u0645 \u0631\u064a\u062f\u0631 \u0641\u064a\u0644\u064a\u067e\u0633","imaget":null,"single_price":"5000","score":"42","stock":"15","visit":"0"},{"product_id":"11915","product_title":"\u0641\u0646 \u0644\u067e \u062a\u0627\u067e \u062a\u0627\u0634\u0648 \u0641\u0627\u0646\u062a\u0632\u06cc","imaget":null,"single_price":"10500","score":"96","stock":"5","visit":"0"},{"product_id":"11914","product_title":"\u0641\u0646 \u0644\u067e \u062a\u0627\u067e \u062a\u0627\u0634\u0648","imaget":null,"single_price":"9500","score":"85","stock":"5","visit":"0"},{"product_id":"11913","product_title":"\u0647\u062f\u0633\u062a \u062a\u06a9 \u06af\u0648\u0634","imaget":null,"single_price":"12000","score":"110","stock":"5","visit":"0"},{"product_id":"11909","product_title":"\u0645\u0648\u0633 \u064a\u0648 \u0627\u0633 \u0628\u064a \u062c\u064a \u0648\u064a","imaget":"product_image\/11909t.jpg","single_price":"11500","score":"90","stock":"8","visit":"0"}],"pageInfo":{"totalRowNum":"301","pageNo":26}}


قبول دارم این کد JSONP نیست ولی اصولا باید توی Console خطا رو ببینم دیگه!!! ولی هیچ چیزی رو نمیبینم.یعنی ممکنه که مرورگر ساپورت نکنه؟؟؟!!!

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users