有没有办法不使用服务器代理来执行跨域GET或POST请求?跨域在JS/JQuery中获取请求
回答
如果你只用当天的浏览器,并已超过了外部域的控制,你可以使用Cross-Origin Resource Sharing [CORS]
大多数人没有这样的奢侈,所以你要么必须使用JSON与填充[ JSONP],或者您需要使用serverside代理。
优秀的答案。更多信息可以在[this stack-o question]获得(http://stackoverflow.com/questions/5908195/jquery-and-cross-domain-post-requests);并且,[检查这篇博客文章](http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/);另外,[这篇mozilla-developer-network文章](https://developer.mozilla.org/En/HTTP_access_control)非常棒,有更多资源的链接。 [编辑]:请注意,为了启用CORS,服务器端脚本必须使用特殊标题进行回复。 – David 2011-11-22 15:27:12
看看这里:http://www.html5rocks.com/en/tutorials/cors/ – 2013-04-23 00:17:24
据我所知,没有办法在JS中创建一个跨域请求,但你可以查询你的服务器并从那里发出请求。
编辑:正如Russ Cam在上面所说,看看JSONP。
AJAX跨域是一个低成本的库,允许执行跨域AJAX请求。 http://www.ajax-cross-domain.com/
这将是伟大的,如果下来选民留下评论所以公众可以接受教育,为什么这是一个不好的答案。 – 2012-04-30 18:44:32
是的,请让我知道,因为我已经在几个项目中使用过这个库,并且没有遇到任何问题。 – Ivan 2012-05-03 06:55:58
它使用通常不理想的第三方服务。 – 2012-12-28 00:22:49
使用YQL是一个简单的做跨域AJAX的方法。您可以指定返回JSON或XML对象。 IBM有一个很好的教程:http://www.ibm.com/developerworks/web/library/wa-aj-jsonp2/index.html
虽然只是搜索yql跨域,它会带来很多教程。
您可以使用Flash。 Flash允许您向另一个服务器发出跨域请求,只要它提供Flash跨域策略文件(XML文件)即可。所以你需要对其他服务器进行管理访问才能设置它。
如果你觉得这个选择可能是你在找什么,或者你想要做的SSL/TLS跨域,检查出的开源Forge项目:
- 1. 跨域Ajax获取请求
- 2. 跨域http获取请求
- 3. 跨域请求获取Google Maps SDK
- 4. 跨域请求
- 5. 跨域请求
- 6. 跨域请求
- 7. 跨域请求
- 8. 跨域请求
- 9. 如何在javascript中获取跨域请求的响应
- 10. 跨域请求jquery
- 11. Firefox跨域请求
- 12. 跨域Ajax请求
- 13. 跨域Ajax请求
- 14. 跨域OAuth请求
- 15. PHP跨域请求
- 16. 跨域AJAX请求
- 17. 跨域HTTP请求
- 18. AJAX跨域请求
- 19. 跨域JSON请求?
- 20. CEFSHARP中的跨域请求
- 21. Firefox中的跨域请求
- 22. 不中跨域请求
- 23. Xhtml中的跨域请求
- 24. 跨域请求子域
- 25. 从WCF请求获取请求域名?
- 26. 跨域ajax请求jquery抓取CSV
- 27. Javascript在IE8中跨域请求
- 28. HTTP请求在Nodejs中的跨域
- 29. 跨域HTTP请求在AngularJS中失败
- 30. 在IE8中修复跨域请求
JSONP - HTTP:// ajaxian.com/archives/jsonp-json-with-padding – 2010-07-07 23:24:50
我应该澄清,我的GET请求的响应是不是JSON格式,所以我不认为$ .getJSON的作品 – Crothers 2010-07-07 23:29:48