찾다

 >  Q&A  >  본문

luajit - POST 매개변수를 가져오는 nginx+lua 관련 문제

마스터 여러분, URL에 GET 및 POST 요청이 있는 서비스 매개변수의 값을 얻으려면 URL의 매개변수를 결정해야 합니다. nginx+lua를 사용해서 해봤습니다. 코드는 다음과 같습니다:

으아아아

이제 문제는 GET을 사용하여 요청하면 모든 것이 정상이지만 POST를 사용하여 요청하면 Nginx에서 500 오류를 보고한다는 것입니다.

다음 코드를 사용하여 디버깅합니다.

으아아아

GET 및 POST 요청 메소드에 인쇄된 서비스 매개변수의 값이 정확합니다.

이제 문제가 어디에 있는지 모르겠습니다. 하나님께 말씀해 달라고 구하세요. 고마움. . .

黄舟黄舟2751일 전1122

모든 응답(3)나는 대답할 것이다

  • 为情所困

    为情所困2017-05-16 17:18:40

    set_by_lua 사용 시 POST 제출인 경우 ngx.req.read_body() 호출 시 set_by_lua 모듈의 read_body 호출이 금지됩니다(set_by_lua 실행 실패: set_by_lua:6: 컨텍스트에서 API 비활성화됨) of set_by_lua
    스택 추적: [C]: 'read_body' 함수에서 set_by_lua:6: 함수 <set_by_lua:1>);
    하지만 다음과 같이 rewrite_by_lua를 사용할 수 있습니다:
    location / {

    으아아아

    도움이 되길 바랍니다. 또한, $service를 변수 이름으로 사용하지 않는 것이 좋습니다. 키워드가 시스템 변수와 충돌할 수 있습니다.

    회신하다
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 17:18:40

    원본 포스터에 조언 좀 부탁드립니다. 왜 내 ngx.req.get_post_args()는 값을 얻지 못하는데 ngx.req.get_body_data()는 값을 얻는지 모르겠습니다. 이유는 무엇입니까?

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 17:18:40

    ngx.req.get_post_args()는 rewrite_by_lua, access_by_lua, content_by_lua* 단계에서만 사용할 수 있으며, 사용하기 전에 ngx.req.read_body()를 호출하거나
    lua_need_request_body 옵션을 켜서 이 모듈을 강제 실행해야 합니다. 요청 본문을 읽으려면 (이 방법은 권장되지 않습니다)

    회신하다
    0
  • 취소회신하다