61阅读

ajax跨域的解决办法-ajax跨域请求的解决方案 - akak123

发布时间:2017-08-10 所属栏目:AJAX相关

一 : ajax跨域请求的解决方案 - akak123

一直打算改造一下自己传统做网站的形式。[www.61k.com)


我是.Net程序员,含辛茹苦数年也没混出个什么名堂。

最近微信比较火, 由于现在大环境的影响和以前工作的总结和经验,我打算自己写一个数据,UI松耦合的比较新潮的模式,类似微信公众平台了也是。

先介绍下微信公众平台,平台上所有展示的动态数据,大多都是由http请求到json,然后解析结合UI产生Html从而展示在您的面前。尽管以前自己经常用xml+xsl=〉html来做。而今天主要是要做的几步:

1.接口站点,最好是用EF的强大功能这样就可以节省很多手动写接口的时间,当然现在还是手动写 感觉不会再爱了~希望博友们能推荐一些学习资源

2.web程序,所有页面均为html,所有的请求和响应都由http来完成和回馈,并且要加上Log记录。感觉这是个大工程,参照了下微信公众平台,平台光js就引用了十几二十个,还用了很多插件,高深的样子 投向崇拜的目光眼。

言归正传,ajax跨域请求的方案


前提是接口程序是你自己发布的,也就是你可以在响应中添加header。当web站点请求接口站点的时候,js会提示跨域无法请求。

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:9004");//我自己调试的站点

你需要添加响应Header。 这时,你在ie下,会请求到你想要的数据, Chrome,Firfox,Maxthon等等浏览器还是请求文档失败,似乎是没指定请求的内容。

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept");//再添加一个header

Success! 也没什么就是加了俩头

二 : ajax跨域请求的解决方案

一直打算改造一下自己传统做网站的形式。(www.61k.com]


我是.Net程序员,含辛茹苦数年也没混出个什么名堂。

最近微信比较火, 由于现在大环境的影响和以前工作的总结和经验,我打算自己写一个数据,UI松耦合的比较新潮的模式,类似微信公众平台了也是。

先介绍下微信公众平台,平台上所有展示的动态数据,大多都是由http请求到json,然后解析结合UI产生Html从而展示在您的面前。尽管以前自己经常用xml+xsl=〉html来做。而今天主要是要做的几步:

1.接口站点,最好是用EF的强大功能这样就可以节省很多手动写接口的时间,当然现在还是手动写 感觉不会再爱了~希望博友们能推荐一些学习资源

2.web程序,所有页面均为html,所有的请求和响应都由http来完成和回馈,并且要加上Log记录。感觉这是个大工程,参照了下微信公众平台,平台光js就引用了十几二十个,还用了很多插件,高深的样子 投向崇拜的目光眼。

言归正传,ajax跨域请求的方案


前提是接口程序是你自己发布的,也就是你可以在响应中添加header。当web站点请求接口站点的时候,js会提示跨域无法请求。

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:9004");//我自己调试的站点

你需要添加响应Header。 这时,你在ie下,会请求到你想要的数据, Chrome,Firfox,Maxthon等等浏览器还是请求文档失败,似乎是没指定请求的内容。

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");//再添加一个header

Success! 也没什么就是加了俩头

三 : 解决AJAX请求中含有数组的办法

大家应该都发现了当我们发送AJAX请求的数据中带有数组时,是不能像普通JSON数据一样,直接放在data里发送给后台

比如有这样一个数据需要发送给后台:

 {  "orderId": 22,  "resourceJson": [  {  "carCapacity": 223,  "carNumber": "123",  "driverInfo": "123",  "failReason": "3123123",  "id": 25,  "ispass": 0,  "lineId": 784,  "load_plan": "123",  "onPackageDay": 123,  "price": 123,  "storeOutCapacity": 123,  "store_out_capacity": 123  },  {  "failReason": "31231231",  "id": 2,  "ispass": 0,  "lineId": 787,  "load_plan": "123",  "store_out_capacity": 123,  "tallyman": "ddd"  },  {  "failReason": "123123",  "id": 1,  "ispass": 0,  "lineId": 785,  "load_plan": "123",  "store_out_capacity": 123,  "tallyman": "fff"  }  ] }

其中resourceJson字段是一个数组,如果直接把这个JSON数据传给后台

后台得到的数据是这个样子:

浏览器会自动把数组解构成一个个变量,后台拿到这个数据就直接傻逼了。

所以,最好的办法是把数组编程字符串,很简单,把数组单独用一个变量存起来,然后JSON.stringify(数组),把得到的字符串放到JSON数据里,这样,浏览器就不会自动去帮你解构数组,后台拿到的也就是一个真正的数组了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

本文标题:ajax跨域的解决办法-ajax跨域请求的解决方案 - akak123
本文地址: http://www.61k.com/1064763.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1