35 lines
1.9 KiB
Markdown
35 lines
1.9 KiB
Markdown
CORS Sample
|
|
===
|
|
This sample consists of a request origin (SampleOrigin) and a request destination (SampleDestination).
|
|
Both have different domain names, to simulate a CORS request.
|
|
|
|
Modify Hosts File
|
|
Windows:
|
|
Run a text editor (e.g. Notepad) as an Administrator. Open the hosts file on the path: "C:\Windows\System32\drivers\etc\hosts".
|
|
|
|
Linux:
|
|
On a Terminal window, type "sudo nano /etc/hosts" and enter your admin password when prompted.
|
|
|
|
In the hosts file, add the following to the bottom of the file:
|
|
127.0.0.1 destination.example.com
|
|
127.0.0.1 origin.example.com
|
|
|
|
Save the file and close it. Then clear your browser history.
|
|
|
|
Run the sample
|
|
*In a command prompt window, open the directory where you cloned the repository, and open the SampleDestination directory. Run the command: dotnet run
|
|
*Repeat the above step in the SampleOrigin directory.
|
|
*Open a browser window and go to http://origin.example.com:5001
|
|
*Click the button to see CORS in action.
|
|
|
|
The SampleOrigin application will use port 5001, and SampleDestination will use 5000. Please ensure there are no other processes using those ports before running the CORS sample.
|
|
|
|
As an example, apart from GET, HEAD and POST requests, PUT requests are allowed in the CORS policy on SampleDestination. Any others, like DELETE, OPTIONS etc. are not allowed and throw an error.
|
|
Cache-Control has been added as an allowed header to the sample. Any other headers are not allowed and throw an error.
|
|
To edit the policy, please see app.UseCors() method in the Startup.cs file of SampleDestination.
|
|
|
|
If using Visual Studio to launch the request origin:
|
|
Open Visual Studio and in the launchSettings.json file for the SampleOrigin project, change the launchUrl under SampleOrigin to
|
|
http://origin.example.com:5001. Using the dropdown near the Start button, choose SampleOrigin before pressing Start to ensure that it uses Kestrel
|
|
and not IIS Express.
|