কীভাবে অনুরোধ পেলোড পুনরুদ্ধার করবেন


118

আমি পিএইচপি , এক্সটجےএস এবং এজাক্স স্টোর ব্যবহার করছি ।

এটি পোষ্ট বা জিইটি-তে নয় (ডেটা তৈরি, আপডেট, ধ্বংস) প্রেরণ করে। ইন ক্রোম কনসোল আমি "মধ্যে তাদেরকে JSON হিসেবে আমার বিদায়ী প্যারাম দেখতে অনুরোধ পেলোড " ক্ষেত্র। । _POST এবং $ _GET খালি রয়েছে।

কীভাবে এটি পিএইচপি-তে পুনরুদ্ধার করবেন?

উত্তর:


257

যদি আমি পরিস্থিতিটি সঠিকভাবে বুঝতে পারি তবে আপনি কেবলমাত্র জসন ডেটা পরিবর্তনের জন্য এইচটিপি বডি দিয়ে যাচ্ছেন application/x-www-form-urlencoded।

আপনি এই স্নিপেট দিয়ে এই তথ্যটি আনতে পারেন:

$request_body = file_get_contents('php://input');

আপনি যদি জসন অতিক্রম করছেন, তবে আপনি এটি করতে পারেন:

$data = json_decode($request_body);

$data তারপরে জেসন ডেটা পিএইচপি অ্যারে রয়েছে।

php://inputএকটি তথাকথিত মোড়ক হয় ।

পিএইচপি: // ইনপুট একটি পঠনযোগ্য স্ট্রিম যা আপনাকে অনুরোধের বডি থেকে কাঁচা ডেটা পড়তে দেয়। পোষ্ট অনুরোধগুলির ক্ষেত্রে, ph HTTP_RAW_POST_DATA- র পরিবর্তে php: // ইনপুট ব্যবহার করা ভাল। কারণ এটি বিশেষ php.ini নির্দেশিকার উপর নির্ভর করে না। তদুপরি, সেই ক্ষেত্রে যেখানে RA HTTP_RAW_POST_Data ডিফল্টরূপে জনবহুল হয় না, এটি সর্বদা_ জনসমক্ষে_আর_পোস্ট_ডাটা সক্রিয় করার একটি সম্ভাব্য কম মেমরি নিবিড় বিকল্প। পিএইচপি: // ইনপুট এনক্রিপ = "মাল্টিপার্ট / ফর্ম-ডেটা" সহ উপলভ্য নয়।


2
আমি তথ্য পুনরুদ্ধার করতে পারে। ধন্যবাদ। !
— nkuhta

7
তোমাকে অনেক ধন্যবাদ! আমি এই উত্তরটি বেশ কয়েকদিন ধরে সন্ধান করছিলাম এবং ভেবেছিলাম আমি পাগল।
— জাচো


@ অ্যাঞ্জেলিননাডার তারপরে এই উত্তরটি প্রযোজ্য।
— ইক্কে

লারাভেল ব্যবহার করা হলে কেবল একটি সহায়ক ফাংশন তৈরি করুন যা ১ টি এই স্ট্রিংটি পুনরুদ্ধার করে এবং ২। তাহলে এটি ইনপুট :: সমস্ত () থেকে কোনও অ্যারের থেকে আলাদা হবে না; একদিকে নয় এটি সম্ভবত অন্য সবার জন্যও কাজ করবে।
— মাইকেল জে। ক্যালকিন্স

12

এছাড়াও আপনি সেটআপ extJs করতে writerসঙ্গে এবং এটি তথ্য নিয়মিতভাবে পাঠাব (এবং, অত, আপনি মাধ্যমে ডেটা পুনরুদ্ধার করতে সক্ষম হবে এবং )।encode: true$_POST$_GET

... মানগুলি কোনও কাঁচা পোস্টের বিপরীতে অনুরোধের প্যারামিটারগুলির অংশ হিসাবে প্রেরণ করা হবে ( Ext.data.writer.Json এর এনকোড কনফিগারেশনের জন্য ডক্সের মাধ্যমে )

হালনাগাদ

এছাড়াও ডক্স যে বলে,

যখন মূলের সংজ্ঞা দেওয়া হয় তখনই এনকোড বিকল্পটি সত্য সেট করতে হবে

সুতরাং, সম্ভবত, writerএর rootকনফিগারেশন প্রয়োজন।


@ নিকিতাকুহাতা, আপনি কি writerএর রুট কনফিগারেশন সেট করেছেন? এটি প্রয়োজন হতে পারে। encodeআমার জন্য কাজ করে imageshack.us/f/32/20120308153201.png
— মলিকুলার ম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.