我理解jsonp是一个技术,绕过相同的源策略。您基本上在脚本标记中引用您的json服务服务器端点,因为脚本标记不受SO策略的限制。
我的问题是:假设一个服务器有一个端点,为json服务,有没有任何修改在服务器上使用客户端中的jsonp?
我想没有,但想要确定…
是的,JSONP在呈现时略有不同,因此您的服务器需要支持它。
原文链接:https://www.f2er.com/ajax/160505.htmlJSON看起来像这样:
{ "name": "value" }
而JSONP看起来像这样:
functionName({ "name": "value" });
如果你使用的任何支持它被覆盖,但它不同于仅支持JSON。当服务器获取请求时,例如:http://example.com/json?callback=functionName,上面是你应该呈现的,因为它在页面中的样子是这样的:
<script type="text/javascript" src="http://example.com/json?callback=functionName"></script>
这意味着运行的东西需要返回,作为例证,这是有效的:
<script type="text/javascript"> functionName({ "name": "value" }); </script>
如果你的服务器不支持JSONP,它实际上是这样的:
<script type="text/javascript"> { "name": "value" } </script>
…并且你会得到语法错误,因为这是无效的JavaScript。