示例:可能已被删除
http://7af3zm.com1.z0.glb.clouddn.com/ajax_304_cors.html
附上源码:
html
access: 200、304响应都有 access-control-allow-origin:*; access-non: 200、304响应都 没 有 access-control-allow-origin; access-200: 200响应都有 access-control-allow-origin:*, 304响应 没 有 access-control-allow-origin;
clojure
(ns base-web.handler (:require [compojure.core :refer :all] [compojure.route :as route] [ring.middleware.defaults :refer [wrap-defaults site-defaults]] [clojure.pprint :as log]))(def my-route (-> site-defaults (assoc-in [:security :anti-forgery] false) (assoc-in [:params] false) ))(defn print-req [req] (println ) (log/pprint my-route) (log/pprint req) (log/pprint (slurp (:body req))) (println done))(defn access-200 [req] (let [etag e-access-200] (if (not= etag (get-in req [:headers if-none-match])) (do (println 200) {:status 200, :headers {content-type application/json, access-control-allow-origin *, etag etag} :body {\success\:true, \frame\: \ring\}}) (do (println 304) {:status 304, :headers {content-type application/json, etag etag}}))))(defn access-non [req] (let [etag e-access-non] (if (not= etag (get-in req [:headers if-none-match])) (do (println 200) {:status 200, :headers {content-type application/json, etag etag} :body {\success\:true, \frame\: \ring\}}) (do (println 304) {:status 304, :headers {content-type application/json, etag etag}}))))(defn access [req] (let [etag e-access] (if (not= etag (get-in req [:headers if-none-match])) (do (println 200) {:status 200, :headers {content-type application/json, access-control-allow-origin *, etag etag} :body {\success\:true, \frame\: \ring\}}) (do (println 304) {:status 304, :headers {content-type application/json, etag etag}}))))(defroutes app-routes (get /access-200 req (access-200 req) ) (get /access-non req (access-non req) ) (get /access req (access req) ) (any * req (print-req req) {\success\:true, \frame\: \compojure\}) (route/not-found not found))(def app (wrap-defaults app-routes my-route));; lein ring server []
