深圳企业官网网站建设哪家好,商标logo免费设计在线生成,网络营销网站 优帮云,大型网站建设多少钱似乎没有办法使用DataSnap来实现带有Padding的JSONP(JSON)解决方案#xff0c;但是我想在这里抛出这个问题以防有人解决了这个问题。有没有办法在Delphi DataSnap REST服务器上使用JSONP#xff1f;背景#xff1a;JSONP是一种利用HTML脚本元素的跨站点引用功能来克服XmlHtt…似乎没有办法使用DataSnap来实现带有Padding的JSONP(JSON)解决方案但是我想在这里抛出这个问题以防有人解决了这个问题。有没有办法在Delphi DataSnap REST服务器上使用JSONP背景JSONP是一种利用HTML脚本元素的跨站点引用功能来克服XmlHttpRequest类的相同源策略的机制。使用XmlHttpRequest您只能从HTML文档提供的相同域中获取数据(JSON对象)。但是如果你想从多个站点检索数据并将数据绑定到浏览器中的控件呢使用JSONP脚本元素的src属性不引用JavaScript文件而是引用Web方法(可驻留在检索到HTML的不同域上的Web方法)。这个Web方法返回JavaScript。脚本标签假定返回的数据是一个JavaScript文件并正常执行。但是Web方法实际返回的是以文字JSON对象作为参数的函数调用。假定被调用的函数是被定义的该函数执行并且可以在JSON对象上运行。例如该函数可以从JSON对象提取数据并将该数据绑定到当前文档。JSONP的优缺点已被广泛讨论(它代表了一个非常严重的安全问题)所以在这里没有必要重复说明。我感兴趣的是如果有人已经找到了如何在Delphi的DataSnap REST服务器上使用JSONP。就像我看到的那样问题就在这里。一个典型的JSONP使用可能包括脚本标记看起来是这样的的的GetData Web方法将返回调用类似如下workit({id: Delphi Pro, price:999});和workit功能可能看起来像这样的function workit(obj) {$(#namediv).val(obj.id);$(#pricediv).val(obj.price);}问题是的DataSnap似乎并不能够返回一个简单的字符串像 的workit({id: Delphi Pro, price:999});相反它被包裹着像下面这样{result:[workit({\id\:\Delphi Pro\,\price\:999});]}很显然这是不可执行的JavaScript。任何想法2这个问题可以降低到“ DataSnap提供了一个过滤器/钩子/事件它允许在发送给客户端之前修改生成的JSON响应“ –