2017-01-02 35 views
0

JSONデータを1つのMVCアプリケーションに送信するWebフォームベースのWebアプリケーションフォームを作成しています。どちらも異なるドメインにあります。ajaxを使用してクロスドメインにJSONデータを投稿

$.ajax({ 
    type: 'POST', 
    contentType: "application/json; charset=utf-8", 
    url: 'http://localhost:52099/Controller/Index', 
    data: JSON.stringify(response.d), 
    dataType: 'jsonp', 
    success: function (response) { 
     alert("done"); 
    }, 
    error: function(e){ 
     alert(e); 
    } 
}); 

はここに私のアクションメソッドです:

は、ここに私のAjaxの手法である

[HttpGet] 
    public ActionResult Index(ClientInformation model) 
    { 
     return(View); 
    } 

Indexメソッドが呼び出さなっているが、私は、パラメータ値を取得しておりません。私は何をする必要がありますか?ここに何か間違っていますか?ここで

はresponse.dとしての私のデータである。

[{"Id":50345520,"FirstName":"Matthew","LastName":"McCauley","MiddleName":"","Suffix":null,"NPI":"1083043491","Address":"614 Esplanade St.","City":"Piscataway","State":"NJ","ZIP":"08854","Country":"United States","SubscriberFirstName":null,"SubscriberLastName":null,"SubscriberMiddleName":null,"SubscriberSSN":null,"SubscriberDOB":null,"SubscriberGender":null,"SubscriberSuffix":null,"SubscriberAddress":null,"SubscriberCity":null,"SubscriberState":null,"SubscriberZIP":null,"SubscriberCountry":null,"VisitDate":"\/Date(1483295400000)\/"}]" 

そして

public class ClientInformation 
{ 
    public int Id { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string MiddleName { get; set; } 
    public string Suffix { get; set; } 
    public string NPI { get; set; } 
    public string Address { get; set; } 
    public string City { get; set; } 
    public string State { get; set; } 
    public string ZIP { get; set; } 
    public string Country { get; set; } 
    public string SubscriberFirstName { get; set; } 
    public string SubscriberLastName { get; set; } 
    public string SubscriberMiddleName { get; set; } 
    public string SubscriberSSN { get; set; } 
    public DateTime? SubscriberDOB { get; set; } 
    public int SubscriberGender { get; set; } 
    public string SubscriberSuffix { get; set; } 
    public string SubscriberAddress { get; set; } 
    public string SubscriberCity { get; set; } 
    public string SubscriberState { get; set; } 
    public string SubscriberZIP { get; set; } 
    public string SubscriberCountry { get; set; } 
    public DateTime? VisitDate { get; set; } 
} 
+0

'response.d'は何ですか? – CodingYoshi

+0

実際にこのajaxは別のajax呼び出しの成功のもとにあります。私はjsonデータを取得しています。 – Ankita

+0

まず、クロスオリジンである要求に対してCORSサーバー側を実装する必要があります。それを実装する方法を研究することは難しくない – charlietfl

答えて

0

私はあなたのresponse.dはそうあなたが必要とするあなたのコントローラのアクションメソッドに、このデータを受信するための配列です見ることができますリストを使用する:

[HttpPost] 
public ActionResult Index(List<ClientInformation> model) 
{ 
    return(View); 
} 

私が気づいたもう1つの事は、投稿リクエストフォームajaxとあなたのあなたはHttpGetを使用しているctionメソッドをHttpPostにも変更してください。

ここで、ClientInformationモデルをListモデルに変更すると、modelオブジェクトに配列response.dの完全なデータが得られます。

私は上記のアクションメソッドに次のajaxのリクエストを送信することにより、自分のアプリケーションでそれを試してみましたが、私は適切にすべてのデータを受信することができる午前:

<script> 
     $(document).ready(function() { 
     var r = [{ "Id": 50345520, "FirstName": "Matthew", "LastName": "McCauley", "MiddleName": "", "Suffix": null, "NPI": "1083043491", "Address": "614 Esplanade St.", "City": "Piscataway", "State": "NJ", "ZIP": "08854", "Country": "United States", "SubscriberFirstName": null, "SubscriberLastName": null, "SubscriberMiddleName": null, "SubscriberSSN": null, "SubscriberDOB": null, "SubscriberGender": null, "SubscriberSuffix": null, "SubscriberAddress": null, "SubscriberCity": null, "SubscriberState": null, "SubscriberZIP": null, "SubscriberCountry": null, "VisitDate": "\/Date(1483295400000)\/" }]; 
     $.ajax({ 
      type: 'POST', 
      contentType: "application/json; charset=utf-8", 
      url: '/Employee/Test', 
      data: JSON.stringify(r), 
      dataType: 'jsonp', 
      success: function (response) { 
       alert("done"); 
      }, 
      error: function (e) { 
       alert(e); 
      } 
     }); 

     }); 
    </script> 
+0

ご回答いただきありがとうございます。しかし、Ajax呼び出しは私のpostメソッドを呼び出さない。どんな考え? – Ankita

+0

@Ankita、コンソールエラーが発生することがあります。 –

+0

いいえ、コンソールエラーはありません。 – Ankita

関連する問題