2016-09-28 5 views
3

jsonインターセプタでJSONをStruts2アクションに送信できます。 http://tech.learnerandtutor.com/send-json-object-to-struts-2-action-by-jquery-ajax/に良いサンプルがあります。strut2 jqueryプラグインタグを使用してJSONオブジェクトをStruts 2アクションに送信

jsonインターセプターは、要求は、我々が直接のようアヤックスを使用する場合、これは設定することができapplication/jsonまたはapplication/json-rpcことcontent typeている必要があります

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

しかし、私たちがストラット2個のjQueryプラグインタグ(sj:asj:submitを使用しています...私たちのためにajaxが必要です。

これらのタグを使用してcontentTypeを設定する方法はありますか。

このためのタグのプロパティは見つかりませんでした。

実装されていない場合は、他に設定する方法があります。

答えて

2

Content-type: application/jsonヘッダーを$.ajax()で使用されるxhrオブジェクトに設定する必要があります。

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

プラグインが$.ajaxSubmit()を使用している、それはJSONデータでは動作しませんので、提出のこの種は排除されるべき。

+0

親愛なる@RomanC、ありがとうございます。しかし、私たちは 'TypeError:xhr is undefined'を取得しました。私たちはstruts 2 jqueryプラグインバージョン' 3.7.1'を使用しています。 'event.originalEvent'は' form'、 'formData'、および' options'プロパティを持ちます。 –

+0

@AlirezaFattahiはい、定義されていません。このオブジェクトが作成される前にトピックが公開されています。 –

+0

'$(document).ajaxSend(function(e、xhr、...)のように' ajaxSend'で使用すると 'xhr.setRequestHeader(" Content-Type "、 'application/json'設定){if(youCondition)xhr.setRequestHeader( "Content-Type"、 'application/json');}); 'あなたは' xhr'を持っていて、それをハックすることができます。とにかく、私は純粋な '$ .ajax'がこのケースでもっと論理的だと思うでしょう –

関連する問題