An unofficial Tauri plugin that enables seamless cross-origin resource sharing (CORS) for web fetch requests within Tauri applications.
Overview
When developing cross-platform desktop applications with Tauri, you may encounter CORS restrictions that prevent direct access to certain web resources, such as OpenAI services. While the official tauri-plugin-http can achieve CORS bypassing, it requires adapting your network requests and may not be compatible with third-party dependencies.
tauri-plugin-cors-fetch
provides a transparent solution by automatically intercepting and modifying outgoing fetch
requests, adding the necessary headers to bypass CORS restrictions. This allows you to continue using the standard fetch
API without the need for additional code changes or workarounds.
Features
- CORS Bypass: Automatically handles CORS restrictions for
fetch
requests. - Seamless Integration: Use the standard
fetch
API without modifications. - Flexible Configuration: Enable CORS globally or on a per-request basis.
Installation
Add the plugin to your Tauri project's dependencies:
cargo add tauri-plugin-cors-fetch
Then, initialize the plugin in your Tauri application setup:
// main.rs
After installing and initializing the plugin, you can start making fetch
requests from your Tauri application without encountering CORS-related errors.
// For global configuration (default is true when the app starts)
window.;
// Use the hooked fetch
.
.
.;
// Or, explicitly call window.corsFetch (even if the global switch is off)
window.;
Note: To allow requests, you may need to update your Content Security Policy (CSP) to include x-http
and x-https
protocols:
// src-tauri/tauri.conf.json
How it Works
This plugin registers custom x-http
and x-https
protocols for Tauri applications. During webpage initialization, it hooks the browser's native fetch
method and redirects http
and https
requests to the x-http
and x-https
custom protocols. All traffic then goes through local native requests, and the plugin adds CORS-related headers to the response headers, effectively bypassing CORS.
Limitation
- Requires Tauri version 2.0 or later. Only desktop platforms are supported; iOS and Android have not been tested.
- Does not support
XMLHttpRequest
(XHR) requests. It is designed specifically to work with the modernfetch
API.
License
This project is licensed under the MIT License.