是否有一种方法可以为CORS请求的XMLHttpRequest提供自定义的响应头解析器?我正在尝试使用jQuery发出CORS请求,并认为接收服务在返回Access-Control-Allow-Headers标头的方式中存在错误。所有允许的标头均以逗号分隔,最后两个则以转义逗号%2C分隔。这导致我的XMLHttpRequest引发以下异常(不注意源地址或目标地址或X-FOO标头,因为它们代替了实际值):
Access to XMLHttpRequest at 'https://service.example.com/activity' from origin 'http://client.example.com' has been blocked by CORS policy: Request header field X-FOO is not allowed by Access-Control-Allow-Headers in preflight response.
以下是飞行前响应中的Access-Control-Allow-Headers标头:
Access-Control-Allow-Headers: Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers,content-type%2Cx-foo
我无权访问目标服务,有什么方法可以告诉XMLHttpRequest在预检响应标头中将%2C解析为普通逗号吗?我的jQuery请求如下所示:
$.ajax({
method: method,
url: `${endpoint}/${activity}`,
crossDomain: true,
dataType: "json",
contentType: "application/json",
headers: {
"X-FOO": token
},
xhrFields: {
withCredentials: true
}
});
答案 0 :(得分:0)
是否有一种方法可以为CORS请求的XMLHttpRequest提供自定义的响应头解析器?
否。
如果有的话,您可以编写一个允许您喜欢的头文件。