在这种情况下如何做跨域Ajax?

时间:2011-06-21 17:17:22

标签: javascript jquery ajax cross-domain

有一个页面:http://renren.com/echo(不是真实的)将返回JSON样式数据,如:

{"candidate":[{"id":251574647,"name":"Jack"}]}  

现在我在http://my-server.com,我想做一个跨域Ajax请求 由于http://renren.com的页面必须登录才能查看,因此我无法使用服务器代理 返回的JSON数据没有函数调用或赋值,因此我不能使用JSONP 我无权在renren.com上修改页面。在这种情况下我该怎么办?

4 个答案:

答案 0 :(得分:0)

如果没有代理页面或控制数据的返回方式,我认为你不会做太多事情。

答案 1 :(得分:0)

您可以使用Apache's mod_proxy以域名为幌子执行此请求。将http://my-server.com/renren等网址配置为http://renren.com/echo的代理。

完成后,您可以将您的AJAX请求发送到http://my-server.com/renren,并避免跨域限制。

答案 2 :(得分:0)

Brian Chess等人描述的技术。人。在下面的论文中可能适用于这种情况。简而言之,您将覆盖用于处理传入JSON的javascript setter。

https://www.fortify.com/downloads2/public/JavaScript_Hijacking.pdf

  

当JSON数组到达时   客户端,它将在中进行评估   恶意页面的上下文。在   为了见证评价   JSON,恶意页面已重新定义   用于创建的JavaScript函数   新物件。就这样,   恶意代码已插入一个钩子   这允许它访问   创建每个对象并传输   对象的内容回到了   恶意网站。

答案 3 :(得分:-1)

如果您使用的是跨域,则无法依赖AJAX。您必须通过自己的PHP / ASP脚本使用cURL类型的调用来调用来自其他域的文件的数据。