


Solution to receive application/json type POST requests in Yii2 backend
Jul 25, 2025 pm 07:36 PMIn modern web development, front-end separation architectures are becoming increasingly popular, and it has become standard practice for the front-end to send data to the back-end API interface in JSON format through asynchronous JavaScript (such as fetch or axios). However, when using the Yii2 framework as the backend, developers may encounter a common problem: even if the frontend successfully sends a POST request of Content-Type: application/json type, the backend cannot get any data through the Yii::$app->request->post() method, and the return result is null or empty.
Analysis of problem phenomenon and root causes
When the current side uses the fetch API and sets Content-Type to application/json, the data in the request body will be sent as the original JSON string. For example:
let csrfToken = document.querySelector("meta[name='csrf-token']").content; let csrfParam = document.querySelector("meta[name='csrf-param']").content; fetch("http://site.se/react/save-babysitter", { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json", "csrf-param": csrfParam, // Yii2 CSRF parameter "X-CSRF-Token": csrfToken // Yii2 CSRF token}, body: JSON.stringify({ 'id': 123, 'name': 'Test Name' }) }).then(response => response.json()) .then((data) => console.log(data));
In the Yii2 backend, if you try to get the data directly through Yii::$app->request->post('name') or Yii::$app->request->post(), you may find that the result is empty:
public function actionSaveBabysitter() { $request = Yii::$app->request; $postData = $request->post('name'); // At this time, $postData will be null // If you try to get all POST data// $allPostData = $request->post(); // At this time, $allPostData will be an empty array echo json_encode(['received_data' => $postData]); Yii::$app->end(); }
The reason for this problem is that the web server (such as Apache or Nginx) will only parse request bodies of two content types: application/x-www-form-urlencoded or multipart/form-data by default, and fill the parsed data into the $_POST global variable of PHP. For requests of application/json type, the request body content will not be automatically parsed to $_POST. By default, Yii2's request component's post() method mainly relies on $_POST or its internally configured parser. Since there is no default JSON parser, it is impossible to extract JSON data from the original request body.
Solution: Configure Yii2's JSON parser
In order for Yii2 to automatically parse request bodies of application/json type and make its data accessible through the Yii::$app->request->post() method, we need to add a JSON parser to the request component in the configuration of the Yii2 application (usually config/web.php or config/main.php).
Under the components configuration item, find or add the configuration of the request component and add the parsers property inside it:
// config/web.php or config/main.php Return [ 'components' => [ 'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => 'your-secret-key', 'enableCsrfValidation' => true, // Make sure CSRF verification is enabled 'parsers' => [ 'application/json' => 'yii\web\JsonParser', // If you need to deal with XML or other types, you can also add // 'application/xml' => 'yii\web\XmlParser', ], // ... Configuration of other request components], // ... Other component configuration], // ...Other top-level configurations];
Through the above configuration, when Yii2's request component receives a request with Content-Type application/json, it will automatically call yii\web\JsonParser to parse the JSON string in the request body. The parsed data can be accessed directly through the Yii::$app->request->post() method.
Backend correctly obtains JSON data
After configuring JsonParser, your controller code can obtain JSON data through the Yii::$app->request->post() method just like handling ordinary POST requests:
public function actionSaveBabysitter() { $request = Yii::$app->request; // Get all parsed POST data $allPostData = $request->post(); // Get a specific field, such as 'name' $name = $request->post('name'); $id = $request->post('id'); // You can perform business logic processing on $allPostData, $name, $id here // For example: save to the database, verify data, etc. // Return the response if ($name && $id) { return $this->asJson([ 'status' => 'success', 'message' => 'Data received successfully!', 'received_id' => $id, 'received_name' => $name ]); } else { return $this->asJson([ 'status' => 'error', 'message' => 'Missing required data.' ]); } }
Things to note
- CSRF token : When the front-end sends JSON data, if Yii2 enables CSRF verification (enableCsrfValidation is set to true), be sure to include the CSRF token in the request header. It is usually passed through X-CSRF-Token and csrf-param headers, as shown in the front-end code example.
- Data access method : After configuring JsonParser, the Yii::$app->request->post() method will automatically return the parsed JSON data. There is no need to manually use file_get_contents('php://input') and json_decode() to get the original request body.
- Error handling and data verification : Even if the data is successfully parsed, the received data still needs to be validated and filtered in the controller to ensure the validity and security of the data.
- Content-Type Accuracy : When the front-end sends a request, the Content-Type header must be accurately set to application/json, otherwise the JsonParser will not be triggered.
Summarize
By adding yii\web\JsonParser to the request component in Yii2 application configuration, the backend cannot get data when sending POST requests in application/json format. This allows Yii2 to seamlessly interact with modern front-end frameworks and APIs, improving development efficiency and maintainability of code. Proper configuration of the parser and combined with proper CSRF processing is a key step in building a robust Yii2 API interface.
The above is the detailed content of Solution to receive application/json type POST requests in Yii2 backend. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The top ten authoritative cryptocurrency market and data analysis platforms in 2025 are: 1. CoinMarketCap, providing comprehensive market capitalization rankings and basic market data; 2. CoinGecko, providing multi-dimensional project evaluation with independence and trust scores; 3. TradingView, having the most professional K-line charts and technical analysis tools; 4. Binance market, providing the most direct real-time data as the largest exchange; 5. Ouyi market, highlighting key derivative indicators such as position volume and capital rate; 6. Glassnode, focusing on on-chain data such as active addresses and giant whale trends; 7. Messari, providing institutional-level research reports and strict standardized data; 8. CryptoCompa

The most suitable tools for querying stablecoin markets in 2025 are: 1. Binance, with authoritative data and rich trading pairs, and integrated TradingView charts suitable for technical analysis; 2. Ouyi, with clear interface and strong functional integration, and supports one-stop operation of Web3 accounts and DeFi; 3. CoinMarketCap, with many currencies, and the stablecoin sector can view market value rankings and deans; 4. CoinGecko, with comprehensive data dimensions, provides trust scores and community activity indicators, and has a neutral position; 5. Huobi (HTX), with stable market conditions and friendly operations, suitable for mainstream asset inquiries; 6. Gate.io, with the fastest collection of new coins and niche currencies, and is the first choice for projects to explore potential; 7. Tra

Ethereum is a decentralized application platform based on smart contracts, and its native token ETH can be obtained in a variety of ways. 1. Register an account through centralized platforms such as Binance and Ouyiok, complete KYC certification and purchase ETH with stablecoins; 2. Connect to digital storage through decentralized platforms, and directly exchange ETH with stablecoins or other tokens; 3. Participate in network pledge, and you can choose independent pledge (requires 32 ETH), liquid pledge services or one-click pledge on the centralized platform to obtain rewards; 4. Earn ETH by providing services to Web3 projects, completing tasks or obtaining airdrops. It is recommended that beginners start from mainstream centralized platforms, gradually transition to decentralized methods, and always attach importance to asset security and independent research, to

The real use of battle royale in the dual currency system has not yet happened. Conclusion In August 2023, the MakerDAO ecological lending protocol Spark gave an annualized return of $DAI8%. Then Sun Chi entered in batches, investing a total of 230,000 $stETH, accounting for more than 15% of Spark's deposits, forcing MakerDAO to make an emergency proposal to lower the interest rate to 5%. MakerDAO's original intention was to "subsidize" the usage rate of $DAI, almost becoming Justin Sun's Solo Yield. July 2025, Ethe

Table of Contents Crypto Market Panoramic Nugget Popular Token VINEVine (114.79%, Circular Market Value of US$144 million) ZORAZora (16.46%, Circular Market Value of US$290 million) NAVXNAVIProtocol (10.36%, Circular Market Value of US$35.7624 million) Alpha interprets the NFT sales on Ethereum chain in the past seven days, and CryptoPunks ranked first in the decentralized prover network Succinct launched the Succinct Foundation, which may be the token TGE

Stablecoins are cryptocurrencies with value anchored by fiat currency or commodities, designed to solve price fluctuations such as Bitcoin. Their importance is reflected in their role as a hedging tool, a medium of trading and a bridge connecting fiat currency with the crypto world. 1. The fiat-collateralized stablecoins are fully supported by fiat currencies such as the US dollar. The advantage is that the mechanism is simple and stable. The disadvantage is that they rely on the trust of centralized institutions. They represent the projects including USDT and USDC; 2. The cryptocurrency-collateralized stablecoins are issued through over-collateralized mainstream crypto assets. The advantages are decentralization and transparency. The disadvantage is that they face liquidation risks. The representative project is DAI. 3. The algorithmic stablecoins rely on the algorithm to adjust supply and demand to maintain price stability. The advantages are that they do not need to be collateral and have high capital efficiency. The disadvantage is that the mechanism is complex and the risk is high. There have been cases of dean-anchor collapse. They are still under investigation.

What is Treehouse(TREE)? How does Treehouse (TREE) work? Treehouse Products tETHDOR - Decentralized Quotation Rate GoNuts Points System Treehouse Highlights TREE Tokens and Token Economics Overview of the Third Quarter of 2025 Roadmap Development Team, Investors and Partners Treehouse Founding Team Investment Fund Partner Summary As DeFi continues to expand, the demand for fixed income products is growing, and its role is similar to the role of bonds in traditional financial markets. However, building on blockchain

A verbal battle about the value of "creator tokens" swept across the crypto social circle. Base and Solana's two major public chain helmsmans had a rare head-on confrontation, and a fierce debate around ZORA and Pump.fun instantly ignited the discussion craze on CryptoTwitter. Where did this gunpowder-filled confrontation come from? Let's find out. Controversy broke out: The fuse of Sterling Crispin's attack on Zora was DelComplex researcher Sterling Crispin publicly bombarded Zora on social platforms. Zora is a social protocol on the Base chain, focusing on tokenizing user homepage and content
