跨域访问:
JSONP的原理利用<script>没有跨域访问的限制,利用<script>的src跨域访问api,api会根据数据把json包装在一个js里面,这样跨域的客户端拿到json的包装(json padding)就会调用本地的函数解析数据。总结来说就是利用两点1、浏览器的跨域限制其实是接收了数据,但限制使用跨域数据。2是利用script标签可以跨域回调的功能
1、JSONP——js
api服务端
public HttpResponseMessage GetAllContacts(string callback) { Contact[] contacts = new Contact[] { new Contact{ Name="张三", PhoneNo="123", EmailAddress="zhangsan@gmail.com"}, new Contact{ Name="李四", PhoneNo="456", EmailAddress="lisi@gmail.com"}, new Contact{ Name="王五", PhoneNo="789", EmailAddress="wangwu@gmail.com"}, }; JavaScriptSerializer serializer = new JavaScriptSerializer(); string content = string.Format("{0}({1})", callback, serializer.Serialize(contacts)); return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(content, Encoding.UTF8, "text/javascript") }; }