要在js里写一个方法去访问网络资源,比如http://www.baidu.com这种,得到返回数据。但是因为跨域限制访问不到。上网查了好久也没找到什么满意的答案。大部分都是说用jsonp,但是jsonp要对服务端返回数据进行修改呀~ 比如原本服务端写的是 return data, 用jsonp的话服务端就要写成 return jsonp(data)这种形式了。关键是我现在改不了人家返回的数据。
必须代理才行
代理?
@hardtoname: 在你的服务器模拟请求啊
@刘宏玺: 我现在只是利用HTML来做界面。C/S结构,不是B/S结构。所以我再弄一个tomcat的话,在运行程序里就还要绑一个tomcat。
@hardtoname: 那就有办法了,你直接用httprequest去模拟请求不就完事了
@刘宏玺: 啊 ? httprequest ?
@hardtoname: 你用的什么语言?
@刘宏玺: 就用javascript和html。
@hardtoname: 你不是说C/S么?在浏览器里面看?
@刘宏玺: web-kit
@hardtoname: 。。。意思是说你写的只有javascript和html啊,没有运行在像C#的Winform上面?
@刘宏玺: 恩。
@hardtoname: 如果你在一个页面用了两个域的资源的话,我觉得只用js是万万不能实现的
@刘宏玺: 其实写成<script type="text" src=url></script>这种形式可以完成链接,但是这个数据被动态放到script里,还是没办法拿出来。跨域限制真是烦啊。。
你应该用js访问本域内的一个地址,这个地址负责去跨域取js然后返回给你。等于是有个代理,帮你跨域取东西。
这么做的话HTML页面还是得放在服务器上。我需要的是不用tomcat之类的容器,单独跑这个HTML就能拿到数据。
这个应该是浏览器不允许的。
你的Jsonp是怎么写的?
$.get(url+"?jsonp=?",function(data){})这种啊。这样的话Server端需要拿到jsonp 然后放到返回数据里,这个function(data)才会运行。但我现在没法修改Server端。
$.getJSON 打错了。。
@hardtoname: 那还是自己写个后台方法访问目标地址,Js请求自己本域的地址吧。
@晓菜鸟: 囧 -_-||
http://www.cnblogs.com/oneword/archive/2012/12/03/2799443.html
http://www.cnblogs.com/2050/p/3191744.html