Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Proxy 如何在JAMstack解决方案中代理API请求?_Proxy_Static Site_Netlify_Cross Site_Jamstack - Fatal编程技术网

Proxy 如何在JAMstack解决方案中代理API请求?

Proxy 如何在JAMstack解决方案中代理API请求?,proxy,static-site,netlify,cross-site,jamstack,Proxy,Static Site,Netlify,Cross Site,Jamstack,我正在开发一个几乎完全静态的网站。我使用一个生成器来创建所有HTML 然而,我的网站是嵌入其页面的商店的前端。我有一个小小的node.js服务器,代表浏览器代理请求到后端存储。它所做的只是提供购物车中物品的数量,这样我就可以在我的网站的所有页面上更新该数量。这是因为浏览器不允许跨域脚本。我的服务器必须充当客户机和商店之间的代理 嵌入式存储是从存储的网站加载的,因此本身不需要代理 我希望最终部署到Netlify或类似的JAMstack提供商。但我不知道我该如何代理Netlify 这个问题的标准解决

我正在开发一个几乎完全静态的网站。我使用一个生成器来创建所有HTML

然而,我的网站是嵌入其页面的商店的前端。我有一个小小的node.js服务器,代表浏览器代理请求到后端存储。它所做的只是提供购物车中物品的数量,这样我就可以在我的网站的所有页面上更新该数量。这是因为浏览器不允许跨域脚本。我的服务器必须充当客户机和商店之间的代理

嵌入式存储是从存储的网站加载的,因此本身不需要代理

我希望最终部署到Netlify或类似的JAMstack提供商。但我不知道我该如何代理Netlify


这个问题的标准解决方案是什么?或者代理对JAMstack解决方案不可用?是否有JAMstack提供程序可以解决此问题?

Netlify允许使用状态代码为200的重定向路径进行代理重写

您可以将in_重定向存储在已部署站点的根目录下。换句话说,文件需要存在于生成后要部署的站点目录的根目录中

_重定向 /api/*https://api.example.com/:splat 200

因此,呼吁:

/api/v1/gifs/random?tag=cat&api_key=your_api_key
将代理给:

https://api.example.com/v1/gifs/random?tag=cat&api_key=your_api_key
如果API支持标准HTTP缓存机制,如Etags或Last Modified标头,则响应甚至会被CDN节点缓存


注意:您也可以在netlify中使用。toml

netlify允许使用状态代码为200的重定向路径进行代理重写

您可以将in_重定向存储在已部署站点的根目录下。换句话说,文件需要存在于生成后要部署的站点目录的根目录中

_重定向 /api/*https://api.example.com/:splat 200

因此,呼吁:

/api/v1/gifs/random?tag=cat&api_key=your_api_key
将代理给:

https://api.example.com/v1/gifs/random?tag=cat&api_key=your_api_key
如果API支持标准HTTP缓存机制,如Etags或Last Modified标头,则响应甚至会被CDN节点缓存


注意:你也可以在你的netlify.toml

哦,哇。太棒了!我甚至不需要编写代理服务器。非常感谢。哦,哇。太棒了!我甚至不需要编写代理服务器。非常感谢。