小编典典

JSONP是否需要修改服务器?

ajax

我了解jsonp是一种绕过相同原始政策的技术。基本上,您在脚本标签中引用json服务服务器端点,因为脚本标签不受SO策略的限制。

我的问题是:假设服务器具有一个为json提供服务的终结点,是否需要对服务器进行任何修改才能在客户端中使用jsonp?

我想不,但是想确定。


阅读 378

收藏
2020-07-26

共1个答案

小编典典

是的,JSONP呈现时略有不同,因此您的服务器需要支持它。

JSON看起来像这样:

{ "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。

2020-07-26