304 CORS

王朝学院·作者佚名  2016-05-23
窄屏简体版  字體: 小  |  中  |  大  |  超大  

304 CORS304响应, CORS问题: 没有 access-Control-Allow-Origin 这个头信息时,以前次返回的200请求为准。

示例:可能已被删除http://7af3zm.com1.z0.glb.clouddn.com/Ajax_304_cors.html

附上源码:html

<!doctype html><html><head><meta charset="UTF-8"></head><body><script type="text/javascript">// var _ajax_34re = false;function getAjax () {var _ajax_34re = false;if (_ajax_34re) {return _ajax_34re;}try {_ajax_34re = new xmlHttPRequest(); } catch (trymicrosoft) { try {_ajax_34re = new ActiveXObject("Msxml2.xmlhttp"); } catch (othermicrosoft) { try {_ajax_34re = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) {_ajax_34re = false; } } }return _ajax_34re;}function load(url) {request = getAjax ();request.open("GET", url); request.onreadystatechange = updatePage; request.send(null); } function updatePage() { if (request.readyState == 4) if (request.status == 200) alert("Server is done!" + request.responseText); else if (request.status == 404) alert("Request URL does not exist"); else alert("Error: status code is " + request.status); }</script><pre>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;</pre><input type="button" onclick='load("http://73a8eb41cb.a.passageway.io/access")' value="access" /><input type="button" onclick='load("http://73a8eb41cb.a.passageway.io/access-non")' value="access-non" /><input type="button" onclick='load("http://73a8eb41cb.a.passageway.io/access-200")' value="access-200" /></body></html>

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 [<port>]

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航