cursor-aip / works.js
Nanny7's picture
Initial commit and configuration for Hugging Face Spaces
4b69a1b
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const url = new URL(request.url)
const targetUrl = `https://api2.cursor.sh${url.pathname}${url.search}`
// 创建一个新的请求对象,复制原始请求的头部和方法,但使用新的目标URL
// 注意:一些头部可能需要特殊处理,或者不应该直接复制 (例如 Host)
const newHeaders = new Headers(request.headers)
newHeaders.set('Host', 'api2.cursor.sh') // 设置正确的主机头
const newRequest = new Request(targetUrl, {
method: request.method,
headers: newHeaders,
body: request.body,
redirect: 'follow' // 根据需要处理重定向
})
try {
const response = await fetch(newRequest)
// 创建一个新的响应,以便可以修改头部 (例如,CORS)
const newResponseHeaders = new Headers(response.headers)
// 允许跨域请求 (根据需要调整)
newResponseHeaders.set('Access-Control-Allow-Origin', '*')
newResponseHeaders.set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
newResponseHeaders.set('Access-Control-Allow-Headers', '*')
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: newResponseHeaders
})
} catch (e) {
return new Response(e.toString(), { status: 500 })
}
}