读书人

Jquery $.ajax跨域解决方法

发布时间: 2012-04-09 13:41:24 作者: rapoo

求助Jquery $.ajax跨域解决办法

本地测试正常,放到服务器上提示拒绝访问。

查了之后才发现是由于自己用的$.ajax跨域获取网页内容,出现了问题。

指定一个url地址(跨域),用JS的任何方式获取这个url的源代码,请教有什么方法吗?


指定URL不是自己的,不能写任何内容。


例如: A站 www.aa.com

B站 www.bb.com 目标URL www.bb.com/view.php?cate=***&tag=***

A站的某文件通过JS获取到目标URL的源代码怎么做到? 多谢多谢


[解决办法]
以前用java时候记得java有个方法是可以获取到页面内容
[解决办法]
jquery jsonp 搜一下吧 如果请求的服务器端代码你不能修改 那你还是省省力气吧 不可能实现的
[解决办法]
我就教你用js的方式,解决ajax跨域问题吧。
1. 使用中间层过渡,也就是传说中的代理的方式:

中间过渡,很明显,就是在AJAX与不同域的服务器进行通讯的中间加一层过渡,这一层过渡可以是PHP、JSP、c++等任何具备网络通讯功能的语言,由中间层向不同域的服务器进行读取数据的操作。拿PHP做一个例子,如果需要对不同域的某一个php进行通讯,现在客户端的xmlhttprequest先query本域的一个PHP,然后由本域的这个PHP去和不同域的PHP进行通讯,然后由本域的PHP输出response;

2. 使用<script>标签

这个方法是利用<script>标签中的src来query一个PHP获得response,因为<script>标签的src属性不存在跨域的问题。

举个例子来让大家看得更清楚一点吧:

JScript code
<script LANGUAGE="Javascript" src="" id="get"></script><script LANGUAGE="Javascript"><!--function get(url){var obj = document.getElementById("get");obj.src = url;(obj.readStatus == 200){alert(param);}}function query(){get(get.php);}//--></script><BODY><INPUT TYPE="button" value="CLICK ME" onclick="query()"></BODY></HTML>
[解决办法]
跨域请使用jsonp方式。但是还要服务端提供配合

读书人网 >JavaScript

热点推荐