gpt4 book ai didi

javascript - 如何向客户端设置 CORS header

转载 作者:行者123 更新时间:2023-12-01 00:07:35 25 4
gpt4 key购买 nike

我正在使用这个客户端

var client = new forcetk.Client();

提出请求。我正在尝试传递另一个 URL,但是

has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

出现错误。我可以为客户端设置任何 header 吗?有没有办法在 XMLHttpRequest 调用中发出客户端请求?任何帮助将非常感激。提前致谢。

这是我的过于简化的代码

> forcetk.Client.prototype.createBlob = function (objtype, fields,
> filename, payloadField, payload, callback, error, retry) {
> 'use strict';
> let res = this.blob('/' + this.apiVersion + '/sobjects/' + objtype + '/',
> fields, filename, payloadField, payload, callback, error, retry);
> res.header("Access-Control-Allow-Origin", "*");
> return res;
> };

最佳答案

要进行本地测试,您必须在服务器上启用 CORS,并将以下 header 添加到来自服务器而不是客户端的响应中:

'Access-Control-Allow-Origin': '*'

生产设置将禁用 CORS,响应 header 如下所示:

'Access-Control-Allow-Origin': 'https://www.google.com'

将 Access-Control-Allow-Origin 设置为特定域并禁用 CORS 会使任何人都无法在您的域之外调用您的 API,因此会出现当前收到的错误。

以下是 JavaScript 中服务器的响应示例

var response = {
"isBase64Encoded": false,
"headers": { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'},
"statusCode": 200,
"body": "{\"result\": \"Success.\"}"
};

例如,当启用 CORS 并且您从本地主机调用服务器时,它将发送预检请求 https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request 。过去,由于我不了解这一点,这已经触发了对我的重复代码调用。就像在服务器端代码上检查空参数值一样简单。

关于javascript - 如何向客户端设置 CORS header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60270574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com