我必须使用jsonp的原因是什么?

时间:2012-03-05 22:18:52

标签: javascript jquery json rest

我必须使用jsonp的原因是什么?

前几天我问为什么我没有来自jquery的休息服务器的响应。 原因是我必须使用JSONP。我用自己的服务器对它进行了测试,但它确实有效。

现在我必须说服我的大学谁能控制正确的服务器,输出必须是JSONP而不是json。

我现在不知道为什么我必须使用JSONP?这只是一个jquery问题还是javascript根本不可能?

任何人都可以帮我解决这些问题吗?感谢

2 个答案:

答案 0 :(得分:8)

JSONP用于通过AJAX跨域获取数据。嗯,不完全是,JSONP实际上有点像“黑客”。

AJAX请求仅适用于同一个域,但<script>个标记可以包含在任何域中。这就是JSONP,它实际上是一个Javascript文件,它被添加为<script>标记。

这就是为什么在JSONP中,它是callback({data: value}),这是一个被执行的脚本。

答案 1 :(得分:5)

如果对属于所谓Same origin policy的网址发出AJAX请求,由于内置的​​浏览器限制,它通常会在大多数浏览器中失败。

但是,如果您使用相同的协议端口作为您的大学服务器,则不需要 / em> JSONP发出AJAX请求,你可以继续使用标准的AJAX工具。

如果不是,JSONP是一种解决相同原始策略的行业标准技术,但它还要求服务器以特殊方式提供数据,以使其可供客户端使用。