2014-09-25 2 views
4
$.ajax({ 
    url: "/Configuration/AddServersAdvancedSelect", 
    type: "POST", 
    data: { selectedOUs: that.getByDataSelected() }, 
    async: false, 
    dataType: "html", 
    success: result => { 
     cont.setTabContentFromHtmlString(result, 1); 
     cont.tabClicked($("td[data-value='1']").get(0)); 
    }, 
    error: (xhr, ajaxOptions, thrownError) => { 
     // 
    } 
}); 

EDIT : 저는 오늘 일하러 돌아와서 마술처럼 일하기 시작했습니다. 나는 그것이 뭔가라고 생각한다.jQuery AJAX POST - 데이터가 전송되지 않습니다.

이것은 서버에 대한 나의 ajax 요청이다. 어떤 이유로 데이터가 선택되지 않습니다. getByDataSelected 함수는 정상적으로 작동하고 좋은 값을 반환합니다. Controller 메소드의 이름은 selectedOUs이고 모든 것이 일치합니다. 왜이 아약스 POST가 데이터를 보내지 않는지 아무도 모른다.

데이터가 서버로 전송되는 PlainObject 또는 문자열이나 배열 :

+0

어떤 데이터를 보내고 있습니까? –

+0

that.getByDataSelected()? –

+2

dataType : "html"? JSON 또는 다른 것이 아닌가? – HaukurHaf

답변

1

jQuery를이

유형으로 데이터 매개 변수를 정의합니다. 아직 문자열이 아니면 쿼리 문자열로 변환됩니다. GET 요청에 대한 URL에 추가됩니다. 이 자동 처리를 방지하려면 processData 옵션을 으로 보아라.

개체는 키/값 쌍이어야합니다.

값이 Array 인 경우 jQuery는 기존 설정 값 (아래 설명 참조)을 기반으로 동일한 키 을 사용하여 여러 값을 일련 번호로 serialize합니다.

that.getByDataSelected()의 반환 값이 전송되지 않으면 예상 된 매개 변수와 일치하지 않을 것입니다.

이 경우 오류 기능에 내부 서버 오류가 발생합니다. [500]

+0

나는 그런 경우는 아니라고 생각합니다. that.getByDataSelected()는 문자열 배열을 반환합니다. 모든 가능한 방법으로 배열을 테스트했습니다. 나는 그것을 직렬화하고 유효한 JSON sytax가 있는지 확인했다. 내가 가진 가장 큰 문제는 내부 서버 오류가 발생했을 때 나에게 "/ Configuration/AddServersAdvancedSelect"라는 문구가 전혀 표시되지 않는다는 것입니다. –

+1

POST 동사가 쿼리 문자열이 아닌 요청 본문을 제출하고 GET이 제출합니다. 데이터를 쿼리 문자열로 사용합니다. 서버의 메소드가 매개 변수를 기대하지 않고 쿼리 문자열을 읽으 려한다면 문제 일 것입니다. 이 경우, 기술적으로, 매개 변수 요구 사항 –

+0

으로 인해 보내고있는 요청을받을 방법이 없으므로 서버에 대한 사용자의 방법에 도달하지 않습니다. 이 게시물은 도움이되었습니다. – blamb

관련 문제