Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么我的REST API客户端需要JSONP请求?

为什么我的REST API客户端需要JSONP请求?
EN

Stack Overflow用户
提问于 2012-11-18 06:34:35
回答 2查看 157关注 0票数 0

我在MVC4中创建了REST基础webAPI,并托管在服务器上,当我从其他域和本地pc上的超文本标记语言调用它时,我需要将其称为JSONP请求,如put callback=?所以它可以是jsonp。我的问题是,为什么会这样呢?如果这是由于跨域,那么谷歌和facbook以及其他公司如何托管他们的应用程序接口,我们也从我们自己的域调用它,但我们不保留callback=?在他们的url里。

那么为什么我的应用程序接口需要callback=呢?在url中,如果我从其他域调用它,或者在我的本地pc上使用简单的jquery html。

EN

回答 2

Stack Overflow用户

发布于 2012-11-18 06:41:17

这是因为浏览器强加的同源策略。请参阅http://www.w3.org/Security/wiki/Same_Origin_Policy

http://en.wikipedia.org/wiki/Same_origin_policy

。还要注意,CORS在未来可能是比JSONP更好的选择

http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

编辑:

如果你浏览过上面的链接,你会发现JSONP允许用户绕过浏览器强加的同源策略安全措施。

诀窍是浏览器允许标签引用来源以外的其他域中的文件。

基本上,对于JSONP,您将一个回调函数名发送到服务器,并将其附加到查询字符串中。然后,服务器将使用对此函数的调用来填充或前缀它的JSON请求,因此名称中表示响应的P将被填充或前缀。

例如,可以创建脚本标记,如下所示

则目标服务器应发送响应,以便

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mymethod({normal: 'json response'})

当在客户端(对于任何其他javascript文件)评估此响应时,它将使用来自该服务器的JSON响应有效地调用您的方法。

然而,这只能做GET请求。

如果你想发出POST (PUT/DELETE)请求,你需要使用CORS,在CORS中服务器需要预先设置一个特定的头部。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Access-Control-Allow-Origin: www.ext.site.com

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2012-11-18 06:39:57

由于同源策略的限制。同源策略防止从一个域加载的脚本从另一个域获取或操作文档的属性。也就是说,请求的URL的域必须与当前网页的域相同。这基本上意味着浏览器隔离来自不同来源的内容,以防止它们被操纵。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13438034

复制
相关文章
Python报错:TypeError: the JSON object must be str, bytes or bytearray, not ‘dict‘
当我尝试运行以下代码,来练习使用json.loads()和json.dumps()函数时,系统给我报出了这个错误。
JavaEdge
2021/02/23
3.1K0
前端json字符串转json对象_list对象转json
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
4.1K0
json字符串转成list集合_将json字符串转换成对象
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
1.7K0
springcloud 返回的数据为XML 而不是JSON
本人的原因是因为引入了jackson-dataformat-xml依赖导致的,下面查看自己项目是否包含此依赖,如果包含的话,可以去掉。 有的人添加了下面注解后可以解决,不过我这里没有解决。还是依靠上图
qubianzhong
2019/04/01
2.3K0
springcloud 返回的数据为XML 而不是JSON
java list 转json 字符串_fastjson将java list转为json字符串
1.直接用fastjson的静态方法string JSON.toJSONString(list)方法就行,JSON.toJSONString(list)将java list转为json字符串。
全栈程序员站长
2022/11/02
11.6K0
将单体应用重构为微服务
微服务重构概述 将单体应用程序转换为微服务的过程是应用程序现代化的一种形式。这是几十年来开发人员一直在做的事情。因此,在将应用程序重构为微服务时,有一些方法可以重用。 一个策略是不推荐“大面积”重写。那就是当您将所有的开发工作集中在从头开始构建新的基于微服务器的应用程序时。虽然听起来很吸引人,但它是非常危险的,可能会以失败告终。 您应该逐步重构单体应用程序,而不是大面积重写。您应该逐渐构建一个由微服务组成的新应用程序,并与您的单体应用程序一起运行。随着时间的推移,单体应用程序实现的功能量会缩小,直到它完全消
用户1263954
2018/01/30
1K0
将单体应用重构为微服务
js将json字符串转换成json对象_json对象转字符串
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码
全栈程序员站长
2022/11/08
8.2K0
js如何将json字符串转成json对象_前端json字符串转json对象
JSON字符串: var str1 = ‘{ “name”: “cxh”, “sex”: “man” }’; JSON对象: var str2 = { “name”: “cxh”, “sex”: “man” };
全栈程序员站长
2022/11/08
9.4K0
java list对象转json_json转list对象集合
2.使用JSONArray json=JSONArray.fromobject(list);在调用json.toString()方法转换成字符串
全栈程序员站长
2022/11/07
3.1K0
Jackson将json字符串转换成List<JavaBean>
public final ObjectMapper mapper = new ObjectMapper(); public static void main(String[] args) throws Exception{ String jsonString = getJsonString(); //getConfig省略 //List<Config> configList = (List<Config>)jsonString //上面这样转换是错的,但是编
ydymz
2018/09/10
2.4K0
java中list对象和json字符串互转
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
8860
Python中list转成Json字符串
{ “0”: “123”, “2”: “34”, “3”: “456”, “1”: “345” }
全栈程序员站长
2022/11/02
1.9K0
Python3将API返回的bytes解码为str
如果将这种类型的字串直接存入到数据库的话,从数据库中读取出的字串进行操作会出现问题,比如上面的字串直接进行解析的话会直接报错,原因是str存着的实际上是一串没有解码的bytes。所以存入数据库时,要对bytes进行解码的操作。各位看官,详细操作请往下看。
十里桃花舞丶
2019/02/20
8420
java json对象和json字符串互转的方法_将json字符串转换成对象
这个json字符串中包含的数据可以转化为一个List<People>集合,代码如下:
全栈程序员站长
2022/11/09
1.9K0
python模块list 转json字符串_python 列表 字典转json[通俗易懂]
bJson = json.dumps(bItem, ensure_ascii=False)
全栈程序员站长
2022/11/02
4.6K0
Python3中文字符编码问题
最近在尝试 Python Web方面的开发尝试,框架使用的是Django,但是在读取数据库并页面展示的时候,出现了中文编码的问题。
小柒2012
2018/12/14
5.4K0
jackson简单使用,对象转json,json转对象,json转list
添加jackson依赖: // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.2' // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
Ryan-Miao
2018/03/13
7.8K0
Python3.7中文字符编码问题
最近在尝试 Python Web方面的开发尝试,框架使用的是Django,但是在读取数据库并页面展示的时候,出现了中文编码的问题。
小柒2012
2019/12/05
1.7K0
js 将json字符串转换为json对象的方法解析
将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 例如: JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象: var str2 = { "name": "cxh", "sex": "man" }; 一、JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象:
小柒2012
2018/04/13
9.4K0
点击加载更多

相似问题

TypeError: JSON对象必须是字符串,而不是'bytes‘

30

TypeError: JSON对象必须是字符串,而不是“list”

10

JSON对象必须是str,而不是'list‘- TypeError

20

我为VM,TypeError收集铬: JSON对象必须是字符串,而不是'bytes‘

152

JSON对象必须是字符串,而不是'bytes‘

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文