JSONP是否需要修改服务器?

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

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

我想不,但是想确定。

回答:

是的,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。

以上是 JSONP是否需要修改服务器? 的全部内容, 来源链接: utcz.com/qa/401823.html

回到顶部