1

所以我正在阅读 The Art & Science of Javascript,这是一本好书,它有一个关于 JSONP 的好部分。我今天一直在阅读所有关于它的内容,甚至在 StackOverflow 上查看了所有问题。JSONP 是个好主意,但它似乎只解决了获取数据的“同源问题” ,而没有解决更改数据的问题。

我只是错过了所有讨论这个问题的博客,还是 JSONP不是我希望的解决方案?

4

2 回答 2

3

JSONP 会导致向另一个服务器生成一个 SCRIPT 标记,其中包含 GET 请求可能需要的任何参数。例如

<script src="http://myserver.com/getjson?customer=232&callback=jsonp543354" type="text/javascript">
</script>

从技术上讲,没有什么可以阻止这种请求更改服务器上的数据,例如指定 newName=Tony。您的回答可能是更新是否成功。您将受到查询字符串的限制。如果您要使用这种方法,请添加一些随机元素作为参数,以便代理不会缓存它。

有些人可能认为这违背了 GET 的工作方式,即它们不应该导致数据发生变化。

于 2008-10-29T23:39:05.560 回答
0

是的,老实说,我想坚持这种范式。但是,我可能会改变规则并说,不更改/处理 CRUCIAL 数据的请求将可以通过 GET 调用访问......嗯......

例如,我正在构建一个购物车系统,我认为允许在购物车中添加/删除/等项目可以很容易地通过 GET 公开,因为即使您可以更改数据,您也不能做任何关键的事情用它。如果有人恶意将 1,000 台纯平显示器添加到您的购物车中,则至少有一个验证步骤不会受到任何攻击(此时是标准 ASP.NET 页面,带有验证和所有这些爵士乐)。

在任何人看来,这是一个好的/可行的解决方案吗?

于 2008-10-30T01:27:48.663 回答