Javascript 在url中存储头数据

Javascript 在url中存储头数据,javascript,node.js,api,header,Javascript,Node.js,Api,Header,我们正在建设一个购物网站,需要显示数百种产品及其图像。我们没有产品图片,但有一家独立公司的服务 我获得了访问此API服务的权限获取在端点处显示产品图像https://imageservice.com/api/v3/images/{product_UPC}需要头Ocp Apim订阅密钥 这将返回一个响应,其中包含一系列适用的产品映像变体。响应数组中的每个图像都位于类似https://imageservice.com/api/v3/asset/[散列]。这些散列图像URL是一次性使用的,必须使用Oc

我们正在建设一个购物网站,需要显示数百种产品及其图像。我们没有产品图片,但有一家独立公司的服务

我获得了访问此API服务的权限<代码>获取在端点处显示产品图像
https://imageservice.com/api/v3/images/{product_UPC}
需要头
Ocp Apim订阅密钥

这将返回一个响应,其中包含一系列适用的产品映像变体。响应数组中的每个图像都位于类似
https://imageservice.com/api/v3/asset/[散列]
。这些散列图像URL是一次性使用的,必须使用
Ocp Apim订阅键再次请求才能实际显示图像

这使得对我们自己的产品API的请求过程变得很困难,因为我们不能用产品及其各自的图像URL为数据库种子。相反,每次我们的购物网站从我们自己的数据库请求产品时,我们必须按产品ID分别请求图像,循环遍历产品并将图像与每个产品匹配

此外,他们的服务被限制为每10秒20个请求,我们在每个分页调用中加载30-40个产品。如果我们最初不将URL加载到数据库中,这将减慢产品的显示速度

问题:我们已经有了使用此单独图像API服务的付费许可证和API密钥,并且我已经在数据库中存储了每个产品及其正确的图像URL。问题是,我们需要将
Ocp Apim订阅密钥
与URL一起传递,而不形成一个全新的AJAX请求。如何做到这一点

问题是我们需要将头Ocp Apim订阅密钥与URL一起传递,而不形成一个全新的AJAX请求。如何做到这一点

如果您的问题是如何在不发出请求的情况下查询图像,那么简短的回答是:不,您不能。标题是出于安全原因制作的。如果目标服务需要标头而不仅仅是URL参数,那么每次需要检索图像时,您都必须按照它们要求的每个步骤发送一个新请求

我只看到两种解决方案

进一步查看您的API

您为其检索图像的公司使用的API可能有一些更深入的选项,以允许您对其进行更多控制。例如,一个函数可以在一个请求中同时检索多个图像

仔细看看,它可能是您的最佳解决方案

不使用请求

如果以上两个方案都不符合您的要求,那么您别无选择,只能自己存储图像。您处理的是一个外部API,它似乎是私有的。因此,您受到合作伙伴公司工作的限制,这是完全正常和预期的。他们可能有很好的理由设置这些限制,过度设置会导致不安全的行为

如果你想要最大程度的控制,那么你需要自己处理大部分。如果你与你的合作伙伴公司的工作有联系,那么你必须向他们了解他们可以给予你什么样的许可,以及你如何从他们的工作中获得最大的利润

编辑


您还可以使用AJAx或其他方法格式化请求,例如。仔细看看这个。这至少可以避免您在每次调用时设置所有请求参数。

您是否可以不只是简单地为每个设置了标题的图像发出请求?实际问题是什么?