程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery Mobile App +远程REST Web服务:JSONP的替代品?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决jQuery Mobile App +远程REST Web服务:JSONP的替代品??

开发过程中遇到jQuery Mobile App +远程REST Web服务:JSONP的替代品?的问题如何解决?下面主要结合日常开发的经验,给出你关于jQuery Mobile App +远程REST Web服务:JSONP的替代品?的解决方法建议,希望对你解决jQuery Mobile App +远程REST Web服务:JSONP的替代品?有所启发或帮助; | 目前,我正在jquery Mobile网站上工作,该网站随后将通过Titanium转换为应用程序。我创建了一个RESTful JsON Web服务,该服务在与jquery Mobile应用程序不同的服务器上运行。使用JsONP通过AJAX使用Web服务。 我感到烦恼的一件事是,我无法使http错误代码,因为只要服务器发出错误,jquery就会自动中止JsONP调用。我永远无法掌握客户端的错误代码。 另一件事是JsONP仅与http动词GET一起使用,例如,您不能发出JsONP POST(当前,Web服务仅是GET,但可能会更改)。 JsONP是否有其他选择?还是将JsONP Web服务与AJAX结合使用时,JsONP是我唯一的选择吗?例如,Twitter应用程序如何与Twitter API(它们具有REST API)交互?     

解决方法

        您的问题很好地说明了为什么人们抱怨jquery太容易采用;) JSONP不是ajax。没有成功和失败回调。 JSONP是这样的: 将参数放在网址中 添加&jsoncallBACk = random2745273 创建一个全局变量
random2745273
,并将回调引用放入其中 将
<script src=\"theurlhere\"></script>
加到
head
那就是您所能做的。 服务器返回
random2745273({somedata});
这就是调用回调的方式。 如果要报告错误,则服务器必须生成正确的代码。您将不知道发送了哪些http标头。 这是您与api进行跨域通信的唯一方法。 通过生成iframe也可以发送跨域通信,但是它很笨拙,很少使用。 [编辑] 好的,这让我开始...我可以使用iframe hack来封装JSONP! 和往常一样-我不是第一个想到这个主意的人(我终于谦虚地用谷歌搜索我的想法了;)) 它在这里:http://beebole.com/en/blog/general/sandbox-your-cross-domain-jsonp-to-improve-mashup-security/ 很棒 [edit2] 噢,我忘了...还有另一个。
window.postmessage
它已经在某些浏览器中实现。如果您不必与大多数浏览器兼容,则可以立即开始使用它! :)     ,        在对postmessage进行更多研究之后,我找到了JSONP的替代方法:通过EasyXDM通过跨域消息传递进行AJAX。 参见http://easyxdm.net/wp/2010/03/17/cross-domain-ajax/     

大佬总结

以上是大佬教程为你收集整理的jQuery Mobile App +远程REST Web服务:JSONP的替代品?全部内容,希望文章能够帮你解决jQuery Mobile App +远程REST Web服务:JSONP的替代品?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。