


Instance analysis laravel cross-domain function activation method
For security reasons, browsers will limit cross-domain requests in Script. Since XMLHttpRequest follows the same-origin policy, all applications that use XMLHttpRequest to construct HTTP requests can only access their own domain names. If they need to construct cross-domain requests, developers need to cooperate with the browser to make some configurations that allow cross-domain requests.
This article mainly introduces to you the relevant information on how to enable cross-domain functions in Laravel. The article introduces it in great detail through sample code. It has certain reference and learning value for everyone's study or work. I hope it can help everyone. .
The W3C Application Working Group recommends a cross-resource sharing mechanism that allows Web application servers to support cross-site access control, thereby making it possible to secure cross-site data transmission. This mechanism uses several This method extends the original mode:
The response header should be appended with Access-Control-Allow-Orign to indicate which request sources are allowed to access resource content
The browser will verify the match between the request source and the value in the response
For cross-domain requests, the browser will pre-send a non-simple method to determine whether a given resource is ready to accept cross-domain resource access
The server application determines whether the request is cross-domain by checking the Orign in the request header.
Cross-origin resource sharing standard
The cross-origin resource sharing standard adds a series of HTTP headers to allow the server to declare which sources can be accessed through the browser on the server H. In addition, for HTTP request methods that will cause destructive responses to server data (especially HTTP methods other than GET, or POST requests with certain MIME types), the standard strongly requires that the browser must first send a preset request in the OPTIONS request method. request (preflight request) to obtain the HTTP methods supported by the server for cross-origin requests. After confirming that the server allows cross-origin requests, send the real request with the actual HTTP request method. The server can also notify the client whether credit information (including Cookies and HTTP authentication related data) needs to be sent along with the request.
The cross-origin sharing standard requires the cooperation of the browser and the server to complete. Currently, browser manufacturers can automatically complete the request part, so the focus of cross-origin resource access is still on the server side.
The following lists some response headers and request headers available in the standard.
Response Header
Access-Control-Allow-Origin: Indicates which request sources are allowed to access resources. The value can be "*", "null", or a single source address.
Access-Control-Allow-Credentials : Indicates whether the response is exposed when the creadentials identifier is omitted from the request. For pre-requests, it indicates that the user credentials can be included in the actual request.
Access-Control-Expose-Headers : Specifies which header information can be safely exposed to the CORS API specification API.
Access-Control-Max-Age : Specifies how long pre-requests can be stored in the pre-request cache.
Access-Control-Allow-Methods: For pre-requests, which request methods can be used for actual requests.
Access-Control-Allow-Headers: For pre-requests, indicates which header information can be used in the actual request.
Origin: Indicates the origin of pre-request or cross-domain request.
Access-Control-Request-Method: For pre-requests, indicate which request methods in pre-requests can be used in actual requests.
Access-Control-Request-Headers: Indicates which header information in the pre-request can be used in the actual request.
Request Header
Origin: Indicates the origin of the request or pre-request.
Access-Control-Request-Method: Bring this request header when sending a pre-request to indicate the request method that will be used in the actual request.
Access-Control-Request-Headers: This request header is included when sending the pre-request, indicating the request headers that the actual request will carry.
Middleware
To allow cross-domain requests in Laravel, we can build a middleware that appends responses to add response headers that specifically handle cross-domain requests. :
<?php namespace App\Http\Middleware; use Closure; use Response; class EnableCrossRequestMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', config('app.allow')); $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, Accept'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS'); $response->header('Access-Control-Allow-Credentials', 'true'); return $response; } }
There are the following things to note:
For cross-domain access And requests that need to be accompanied by authentication information need to specify withCredentials as true in the XMLHttpRequest instance.
You can build this middleware according to your own needs. If you need to include authentication information (including cookie, session) in the request, then you need to specify Access-Control-Allow-Credentials Is true, because for pre-requests, if you do not specify this response header, the browser will directly ignore the response.
When Access-Control-Allow-Credentials is specified as true in the response, Access-Control-Allow-Origin cannot be specified as *
Post-middleware will only add response headers when responding normally. If an exception occurs, the response will not go through the middleware.
related suggestion:
Three ways jQuery uses JSONP to obtain cross-domain data
The above is the detailed content of Instance analysis laravel cross-domain function activation method. For more information, please follow other related articles on the PHP Chinese website!

What’s still popular is the ease of use, flexibility and a strong ecosystem. 1) Ease of use and simple syntax make it the first choice for beginners. 2) Closely integrated with web development, excellent interaction with HTTP requests and database. 3) The huge ecosystem provides a wealth of tools and libraries. 4) Active community and open source nature adapts them to new needs and technology trends.

PHP and Python are both high-level programming languages that are widely used in web development, data processing and automation tasks. 1.PHP is often used to build dynamic websites and content management systems, while Python is often used to build web frameworks and data science. 2.PHP uses echo to output content, Python uses print. 3. Both support object-oriented programming, but the syntax and keywords are different. 4. PHP supports weak type conversion, while Python is more stringent. 5. PHP performance optimization includes using OPcache and asynchronous programming, while Python uses cProfile and asynchronous programming.

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP remains important in the modernization process because it supports a large number of websites and applications and adapts to development needs through frameworks. 1.PHP7 improves performance and introduces new features. 2. Modern frameworks such as Laravel, Symfony and CodeIgniter simplify development and improve code quality. 3. Performance optimization and best practices further improve application efficiency.

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values and handle functions that may return null values.


Hot AI Tools

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

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

Undress AI Tool
Undress images for free

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

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

WebStorm Mac version
Useful JavaScript development tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.