2016-09-28 3 views
3

strut2의 jQuery 플러그인 태그를 사용하여 스트럿츠 2 액션에 JSON 객체를 전송합니다. http://tech.learnerandtutor.com/send-json-object-to-struts-2-action-by-jquery-ajax/에 좋은 샘플이 있습니다.우리는 <code>json</code> 인터셉터에 의해 작업을 Struts2하는 JSON을 보낼 수 있습니다

json 인터셉터는 요청이 application/json 또는 application/json-rpc는 우리가 직접처럼 Ajax를 사용할 때이 설정 될 수있을 content type해야합니다 :

$.ajax({ 
    url: "writeJSON.action", 
    data: data1, 
    dataType: 'json', 
    contentType: 'application/json', 

그러나 우리는 스트럿츠 2 개 jQuery 플러그인 태그 (sj:asj:submit를 사용하는 ...) 우리를 위해 아약스 호출을 관리합니다.

우리는 이러한 태그와 contentType을 설정할 수있는 방법이 있습니까.

이 태그 속성을 찾을 수 없습니다.

가 구현되지 않은 경우를 설정하는 다른 방법이있다.

답변

2

당신은 $.ajax()에 의해 사용되는 XHR 객체에 Content-type: application/json 헤더를 설정해야합니다. 이 JSON 데이터와 함께 작동하지 않기 때문에 플러그인이 $.ajaxSubmit() 사용

$.ajax({ 
    url: "writeJSON.action", 
    data: data1, 
    dataType: 'json', 
    contentType: 'application/json', 

는 제출이 종류는 제거되어야한다. 우리는 스트럿츠 2 jQuery 플러그인 버전을`3.7.1` 사용하는 undefined` XHR입니다 :

+0

친애하는 @RomanC, 감사합니다,하지만 난'형식 오류를 얻을. 'event.originalEvent'는'form','formData','options' 속성을 가지고 있습니다. –

+0

@AlirezaFattahi 예, 정의되지 않았으므로이 개체를 만들기 전에 항목이 게시됩니다. –

+0

그냥 메모는'xhr.setRequestHeader ("Content-Type을 ','응용 프로그램/JSON이 '); 당신이 그것을 사용하는 경우'.ajaxSend (기능 (예, XHR이'$ (문서)와 같은 ajaxSend''에서 작동, settings) {if (youCondition) xhr.setRequestHeader ("Content-Type", 'application/json');});'거기에'xhr'을 가지고 그것을 해킹 할 수 있습니다. 어쨌든,이 순수한'$ .ajax '가 더 논리적 인 것 같습니다. –