39 lines
2.1 KiB
Markdown
39 lines
2.1 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
|
|
To run this CORS sample, modify the hosts file to register the hostnames `destination.example.com` and `origin.example.com`.
|
|
### 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
|
|
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.
|
|
|
|
* 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`
|
|
* Input a method and header to create a CORS request or use one of the example buttons to see CORS in action
|
|
|
|
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. You may leave the header name and value blank.
|
|
|
|
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.
|
|
|