使用ajax发布JSON数据以跨域使用
问题描述:
我正在研究基于webform的web应用程序表单,我想将JSON数据发送到一个MVC应用程序。两者都在不同的域。使用ajax发布JSON数据以跨域使用
这里是我的AJAX方法:
$.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);
}
});
这里是我的操作方法:
[HttpGet]
public ActionResult Index(ClientInformation model)
{
return(View);
}
指数方法得到调用,但我没有得到的参数值。我需要做什么?这里有什么不正确的吗?
这里是我的数据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; }
}
答
我可以看到你的response.d是一个数组,所以要收到你需要你的控制器的操作方法这个数据使用列表:
[HttpPost]
public ActionResult Index(List<ClientInformation> model)
{
return(View);
}
我还注意到的另一件事是,你发送一个帖子请求形式ajax和你的a您正在使用HttpGet的ction方法,请将其更改为HttpPost。
现在将ClientInformation模型更改为List模型后,您将在模型对象中获得完整的数组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>
是什么'response.d'? – CodingYoshi
实际上这个ajax是在另一个ajax调用的成功之下。在response.d我收到JSON数据。 – Ankita
对于初学者,您需要为CORS服务器端实现跨越源的请求。不难研究如何实施它 – charlietfl