AngularJS中$http.jsonp跨域请求问题
来源:互联网 发布:php和java哪个好找工作 编辑:程序博客网 时间:2024/04/30 19:30
1、angularjs的jsonp请求,其请求url后面必须加上JSON_CALLBACK
如:“http://localhost:8080/angularjs/json/phone.json?callback=JSON_CALLBACK”
2、callback=JSON_CALLBACK 是指指定回调函数的名称为JSON_CALLBACK ,这个名称在AngularJS发出请求时,会自动将JSON_CALLBACK替换成一个唯一的函数名,比如:"callback=angular.callbacks._0",这个可以通过浏览器debug模式查看. 我请求的url为“http://localhost:8080/angularjs/json/phone.json?callback=JSON_CALLBACK”
3、比较重要的,你的返回数据必须放在JSON_CALLBACK (json数据)里面。
注意:JSON_CALLBACK 必须是angularjs把你的JSON_CALLBACK 替换后的值,如:angular.callbacks._0,假设你请求到后台,你可以先获取到callback这个参数的值,然后把组装你要返回的json数据。
eg: 假设是SpringMVC
String callback = request.getParameter("callback");
JSONObject json =newJSONObject();
json.put("id", "123456");
json.put("username", "hhaip");
json.put("age", 25);
json.put("sex", "男");
return callback+"("+json+")"; //返回的json格式和下面我的例子一样
我请求的是一个.json文件,在tomcat里面直接新建了一个文件夹,里面放了一个.json文件,该文件里存放了json格式的数据,如下:
angular.callbacks._0([ //angular.callbacks._0不能写成JSON_CALLBACK
{
"id":"00001",
"name":"Nexus S",
"snippet":"Fast just got faster with Nexus S.",
"age":12,
"address":"江西九江"
},
{
"id":"00002",
"name":"Motorola XOOM™ with Wi-Fi",
"snippet":"The Next, Next Generation tablet.",
"age":21,
"address":"江西南昌"
},
{
"id":"00003",
"name":"MOTOROLA XOOM™",
"snippet":"The Next, Next Generation tablet.",
"age":22,
"address":"江西丰城"
}
,
{
"id":"00004",
"name":"一加X",
"snippet":"一加最新的一款轻期旗舰手机",
"age":19,
"address":"江西赣州"
}
,
{
"id":"00005",
"name":"锤子手机",
"snippet":"东半球最好用的手机",
"age":13,
"address":"江西上饶"
}
,
{
"id":"00006",
"name":"iphone 6s",
"snippet":"苹果6plus手机",
"age":18,
"address":"江西宜春"
}
])
4、$http.jsonp是向服务器发送请求,所以你不能直接就访问非服务器里的文件,那样会报错。
(1). 可以在tomcat的webapps文件夹里新建一个文件夹,里面放一个文件如:data.json,这样就是一个项目了。
(2). 然后启动你的tomcat,就启动服务了,数据就在服务器里。
(3). 请求的url可以写成http://localhost:8080/文件夹名/data.json?callback=JSON_CALLBACK
此博文为原创,转载请注明出处
- AngularJS中$http.jsonp跨域请求问题
- AngularJS中$http.jsonp跨域请求问题
- AngularJS 用 $http.jsonp 方法跨域请求数据错误的问题
- AngularJS 用 $http.jsonp 方法跨域请求数据错误的问题
- jsonp跨域请求问题
- jsonp跨域请求问题
- AngularJs服-jsonp解决跨域问题
- 跨域请求HTTP数据之JSONP
- 缓存AngularJS JSONP请求
- angularjs 跨域请求问题
- 关于angularjs中$http POST请求参数的问题
- 关于angularjs中$http POST请求参数的问题
- 关于angularjs中$http POST请求参数的问题
- jquery使用jsonp跨域请求问题
- jsonp解决跨域请求问题
- JSONP解决跨域请求问题
- jsonp解决跨域请求问题
- jsonp解决跨域请求问题
- 利用 jquery flot 生成柱状图
- java io 流整理
- hoyi-web[java] 用户控件的使用
- 基于Ubuntu14.04的Hadoop2.6.0完全分布式安装
- 单源最短路-SPFA(poj2387)
- AngularJS中$http.jsonp跨域请求问题
- UIColor (16进制颜色、透明色使用)
- iOS开发笔记-UITableView的单选
- (几个gradle)gradle工程的环境搭建----安装gradle
- AKKA文档(java版)—角色
- Spring Security3 - MVC 整合教程 (初识Spring Security3)
- 用NPOI操作EXCEL-锁定列CreateFreezePane()
- oracle分页sql
- 36,const的作用