clojure - 在 Localhost for HTTP-Kit 上托管时进行 AJAX 调用
问题描述
我正在尝试制作一个前端和 HTTP-Kit 后端网站。我在从 Web 浏览器中获取 HTTP-Kit 响应时遇到了很多麻烦。当我使用 HTTP-Kit 网络服务器从我的浏览器访问“ http://localhost:8080 ”时,它运行良好并显示“hello HTTP!”。
(defn app [req]
{:ip "127.0.0.1"
:status 200
:headers {"Content-Type" "text/html"}
:body "hello HTTP!"})
(run-server app {:port 8080})
但是,当我尝试使用 Post 或 Get 对同一服务器进行 AJAX 调用时,它不再起作用,而是显示状态 0。
我读到它可能与 CORS 兼容性有关,但我真的不知道如何配置它才能工作。
干杯,
解决方案
在服务器端代码的 headers 部分,我必须把它允许跨域共享文件。
:headers {"Content-Type" "text/html" "Access-Control-Allow-Origin" "http://localhost:8000"}
然后这允许我使用 cljs-http 发出 AJAX 请求
(http/post "http://localhost:8080/" {:with-credentials? false})
它允许 AJAX 请求。
推荐阅读
- asynchronous - 阻塞获取 aio_pika
- mysql - 使用 MySQL utf8 排序规则的仓颉字符的字符串值不正确(支持 4 字节)
- javascript - 等待点击直到元素被渲染
- python - 提及作者 Python Bot
- java - Groovy 按更多标准分组
- java - Java - 如何使用类型安全枚举作为 switch-case 语句?
- c++ - 用于链接 opencv.framework 的 Makefile(我没有使用 cmake)
- python - 如何使 Python 在 Windows 上使用 `open()` 默认使用 UTF8?
- ios - 使用 xcodebuild 运行的测试在终端中没有 NSLog 输出
- r - 使用 r 中的栅格包聚合季节性均值