博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular中的jsonp记录
阅读量:5286 次
发布时间:2019-06-14

本文共 894 字,大约阅读时间需要 2 分钟。

angular的正常机制采用引入$http服务的形式进行 get post等的访问。但是在跨域访问的时候就需要采用jsonp了。

不废话,直接上示例和引用原文地址:

比如访问地址为 

http://url

需要再上边的 url后边加上 callback=JSON_CALLBACK

即访问地址形式为:

http://url?callback=JSON_CALLBACK

此访问的意思是告诉服务器端需要获取我的 callback (key),然后采用对应的key值对应的value JSON_CALLBACK (字符串)

进行返回,jsonp 这边会将返回的内容作为一个js表达式进行调用。

即服务器那边放回形如 return "JSON_CALLBACK("+ jsonData +")"; 的内容。

这边直接进行调用,当然你js的这边需要提供好对应的方法,既然你传递过去了 JSON_CALLBACK 那么就声明一个

JSON_CALLBACK全局方法吧。

即 function JSON_CALLBACK(){//your code

}

 

好吧,上边说的其实是一般的方法,在angular里边按照这么进行调用的话,其实请求的地址是形如(可以在debug模式中的network中进行查看)

http://url?callback=angular.callbacks._0

所以在返回的时候就要将对应的 JSON_CALLBACK 进行更改了。

即服务器端需要返回 return "angular.callbacks._0("+ jsonData +")"; 的内容

 

最后写一下就是, 服务器只要按照上边进行返回的话,那么就直接在success中进行调用了~ 我的是这个样子的,欢迎大家分享沟通。

$http.jsonp(url).success(function(data){

console.log(data);
});

 

附上stackoverflow(真是个好网站)参考地址:

原文地址:

 

转载于:https://www.cnblogs.com/asdfq/p/5484665.html

你可能感兴趣的文章
[No000014D]chrome console 调试 引入 jquery等外部库
查看>>
selenium 遇到chrome 弹出是否保存密码框
查看>>
linux 开机启动过程详解
查看>>
Spark On YARN内存分配
查看>>
apache服务器绑定泛解析域名
查看>>
java web每天定时执行任务(四步轻松搞定)
查看>>
Java学习之自动装箱和自动拆箱源码分析
查看>>
windows下Android(安卓)开发环境搭建 图文教程
查看>>
转载-前端模块化开发的价值
查看>>
ELK学习笔记之ElasticSearch的索引详解
查看>>
怎么针对大批量数据进行分割
查看>>
pyreadline
查看>>
机器学习中使用的神经网络(三)
查看>>
webpack 4.0尝鲜
查看>>
《HTTP权威指南》学习笔记——URL和资源
查看>>
C# 数组、ArrayList和List三者的区别
查看>>
spring缓存
查看>>
android-async-http AsyncHttpClient介绍
查看>>
微信云控开发SDK使用教程--手机端推送好友列表通知服务端
查看>>
高并发情况下分布式全局ID
查看>>