我想获得使用Node JS的连接库包发出的请求的"Host"头.我的代码看起来像:
var app = connect()
.use(connect.logger('dev'))
.use(connect.static('public'))
.use(function(req, res){
var host = req.???
})
.listen(3000);
Run Code Online (Sandbox Code Playgroud)
连接的文档在这里,但我没有看到任何详细说明req上述代码中的对象的API .http://www.senchalabs.org/connect/
编辑:注意一个成功的答案必须指向文档(我需要这个来验证哪个版本提供了我正在寻找的API).
我已经有效地使用了 wiremock 一段时间了,我想启用对模拟 API 的 CORS 访问。
我试过在响应头中设置 Access-Control-Allow-Origin: * 和其他头,但都无济于事。
这是我拥有的映射示例:
{
"request": {
"method": "POST",
"urlPattern": "/api/v2/general/login[\\/\\&\\?]*",
"bodyPatterns": [{
"equalToJson": "{\"password\":\"password\",\"username\":\"john@cougar.com\"} ",
"jsonCompareMode": "LENIENT",
"ignoreArrayOrder" : true,
"ignoreExtraElements" : true
}]
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json",
"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Methods" : "*",
"Access-Control-Allow-Headers": "Accept, Content-Type, Content-Encoding, Server, Transfer-Encoding",
"X-Content-Type-Options" : "nosniff",
"x-frame-options" : "DENY",
"x-xss-protection" : "1; mode=block"
},
"bodyFileName": "/login_response_johncougar.json"
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么导致 CORS 不起作用?
提前致谢。
应用程序属性
#WEB
quarkus.tls.trust-all=true
quarkus.http.cors=true
Run Code Online (Sandbox Code Playgroud)
控制器
@POST
@Path("/result")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Operation(summary = "Show Even Result.", description = "This method will provide past Events result.")
@Transactional
public Response showEvenResult(@Valid EventResultRequest eventResultRequest) {
log.info("BetSettlementController.users_result() :" + eventResultRequest);
try {
return Response.ok(resultService.usersBetsHistory(eventResultRequest)).build();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return Response.status(Response.Status.INTERNAL_SERVER_ERROR). build();
}
}
Run Code Online (Sandbox Code Playgroud)
公开一个 API,该 API 在调用时提供一个包裹在响应对象周围的对象。从邮递员应用程序来看,它正在工作。但是当代码部署在“prod”环境上时,前端(Angular)在调用相同的 API 时会收到 CORS 错误。
浏览器控制台错误
从源“https://Front-end-URL”访问“https://Server-API-URL/events/result”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头
创建从我的网站到运行 CherryPy 的 Python 服务器的发布请求时,我收到错误Access to XMLHttpRequest has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.. 我可以使用“CORS Everywhere”浏览器扩展程序之一暂时解决问题,但是
这是相关的代码:
从网站发布请求调用的 CherryPy Python 函数
@cherrypy.expose
@cherrypy.tools.json_in()
def add_meeting(self):
data = None
id = None
start_time = None
end_time = None
title = None
userlist = None
result = {"operation": "request", "result": "success"}
if cherrypy.request.method == "POST":
data = cherrypy.request.json
id = data["id"]
start_time = data["start_time"]
end_time …Run Code Online (Sandbox Code Playgroud) 我在前端使用 Angular,在后端使用 Jersey。当我执行 PUT 请求时出现异常。这是角度代码:
const header=new Headers({'Content-Type':'application/x-www-form-urlencoded'});
header.append("Access-Control-Allow-Methods", "POST");
header.append("Access-Control-Allow-Headers","Access-Control-Allow-Origin");
return this.http.post('http://localhost:8080',home,{headers: header})
.pipe(map((response: Response)=>{return response.json();}));
Run Code Online (Sandbox Code Playgroud)
这是我在泽西岛的过滤器:
@Provider
public class CORSResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
throws IOException {
responseContext.getHeaders().add("Access-Control-Allow-Origin", "*");
//headers.add("Access-Control-Allow-Origin", "http://podcastpedia.org"); podcastpedia.org
responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,PATCH,OPTIONS");
responseContext.getHeaders().add("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
}
}
Run Code Online (Sandbox Code Playgroud)
这是例外:
无法加载http://localhost:8080/预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Methods
有人可以帮助我吗?
我正在使用MEAN Stack用户注册和登录示例和教程作为我的应用程序的基础.它为run函数中的每个请求添加了一个auth标头:
$http.defaults.headers.common['Authorization'] = 'Bearer ' + $window.jwtToken;
Run Code Online (Sandbox Code Playgroud)
我想将图像上传到Cloudinary,但我收到此错误:
XMLHttpRequest无法加载https://api.cloudinary.com/v1_1/xxxx/upload.请求标头字段预检响应中的Access-Control-Allow-Headers不允许授权.
如何针对Cloudinary的请求专门删除此标头?