Clojure 링에 대한 Angular POST는 프리 플라이트에 대한 응답을 수신하는 데 잘못된 HTTP 상태 코드 404가 있습니다.

벤자민 맥 페렌

Angular / Clojure 앱으로 cors 문제를 극복하기 위해 노력하고 있으며 POST 및 GET 요청에 대한 Access-Control-Allow-Origin 오류를 방지하기 위해 사용할 구문을 이해하는 데 문제가 있습니다.

이 코드를 내 경로가있는 내 clojure 컨트롤러에 추가했으며 GET 요청에 대한 문제를 해결하는 것 같습니다.

(POST "/node/create" request
    (let [node_object (or (get-in request [:params :data])
                          (get-in request [:body :data])
                          "ROUTER_ERROR")]
      {:status 200
       :headers {"Content-Type" "application/json"}
       :body (recursiftion.model/createNode node_object)
      }
))

(defn allow-cross-origin  
  "middleware function to allow crosss origin"  
  [handler]  
  (fn [request]  
   (let [response (handler request)]  
    (assoc-in response [:headers "Access-Control-Allow-Origin"]  
         "*"))))

(def app
 (-> (handler/api app-routes)
      (middleware/wrap-json-body {:keywords? true})
      (middleware/wrap-json-response)
      (allow-cross-origin)))

그리고이 Angular 코드

this.post = function (object) { 

    console.log('BANG', object);

    return $http({
                method: "post",
                url: "https://mywebserveraddress.com/node/create",
                data: object
            }); 
    };

하지만 여전히 POST 요청에 대한 관련 오류가 있습니다.

preflight has invalid HTTP status code 404

내 프로덕션 환경의 개발 및 외부 서버를 위해 로컬 호스트에 상주 할 앵귤러 스파에서 교차 도메인 아약스 요청을 만들기 위해 내 clojure 애플리케이션에 추가 할 올바른 구문을 찾고 있습니다.

도와 주셔서 감사합니다.

xsc

CORS GETOPTIONS메서드를 사용하여 소위 "프리 플라이트"요청을 보내기 위해 비 요청을 요구합니다 . 에 대한 처리기가 없기 때문에 코드가 404를 반환합니다 (OPTIONS "/node/create" ...).

더 좋지만 여전히 완전하지는 않습니다. CORS 미들웨어는 다음과 같은 모양이됩니다.

(def ^:private cors-headers
  {"access-control-..." ...})

(defn wrap-cors
  [handler]
  (fn [request]
    (some-> (if (= (:request-method request) :options)
              {:status 200}
              (handler request))
            (update :headers merge cors-headers))))

그러나 더 복잡한 점이 있습니다 ( 일부 경우 *유효한 값이 Access-Control-Allow-Origin아님). 따라서 기존 라이브러리 (예 : ring-cors또는 ring.middleware.cors)를 사용하여 처리하는 것이 좋습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관