2017-07-19 7 views
-1

私は以下のXML文字列を持っています。私はそれをMVCコントローラにAjaxコール経由でポストしようとしています。MVCコントローラには文字列パラメータしかありません。私のAjaxコードは以下のとおりです。しかし、リクエストを処理することができません。コントローラにXML文字列を送信するにはどうすればいいですか?MVCコントローラへのajax呼び出しでXML文字列をPOSTする方法は?

var textdata = "<bb>tt</bb><ff>rr</ff>"; 

     $.ajax({ 
      url: '/AppVersionProtocolMethod/Test', 
      type: 'POST', 
      data : { xmlData : textdata}, 
      success: function (datas) { 

      } 
     }); 

ありがとうございました。 -Soumya

+0

jqueryポストコールからasp.netページへのHTMLマークアップを送信すると、クライアントから潜在的に危険なRequest.QueryString値が検出された可能性があります(https://stackoverflow.com/questions/3885697/a-potentially-危険なリクエストクエリーストリング値はクライアントから検出されました –

+0

あなたはPOSTを行っています - 確かに、データはリクエストの本体に入っている必要がありますか?代わりに 'data:{xmlData:textdata}'を使用してください –

答えて

2

あなたは、クエリ文字列を使用してurlパラメータでそれをやっている方法は、GETの要求のために行われている間ajaxコールがPOSTに設定されているあなたのtypeを設定しています。

GETリクエストを使用すると連結された値が渡され、dataプロパティを使用して渡す必要があります。コントローラのアクションにPOSTとして渡されます。

ので、それを動作させるには、以下のようにコードを変更:

$.ajax({ 
     url: '/AppVersionProtocolMethod/Test', 
     type: 'POST', 
     data : { xmlData : textdata} 
     success: function (datas) { 

     } 

    }); 

は、それはあなたのお役に立てば幸いです。

+0

それは本当です。しかし私はこれを試しました。それでも動作しませんでした。 –

+0

あなたはより記述的になりますが、何が間違っているか把握するのに役立たないでしょうか? –

+0

"ValidateInput(false)"という属性を持つControllerアクションで試してみました。そして、それはXML文字列を取ることができます。しかし、これは良い回避策ですか、それともより良い回避策を私に提供することができますか? –

関連する問題