如何使用ajax抓取页面?

时间:2013-10-14 09:05:37

标签: javascript jquery ajax django

我有两个页面(A和B),它们是使用django + jquery编写的。他们的网址是:

http://127.0.0.1:8081/temp1/ (pageA)
http://127.0.0.1:8082/temp2/ (pageB)

我想使用ajax()在页面A的js脚本中抓取页面B,而js脚本是:

 $("#tmp_button1").click(function(tmp_event) {
    $.ajax({
            url: "http://127.0.0.1:8082/temp2/",
            async: false,
            headers: {
                   "Access-Control-Allow-Origin" : "*"
            },
            error: function(request, error) {
                    alert(error);
            },
            success: function(response) {
                    alert(response);
            }
    });
});

不幸的是,我无法抓取页面B.这是一个跨域操作吗?如果我想使用jquery抓取页面B,我该怎么办?

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

端口不同,因此您的服务器(请求目标服务器)需要允许跨域请求 只需发送此标题:

Access-Control-Allow-Origin: *

E.g。 for PHP(http://enable-cors.org/server_php.html):

 header("Access-Control-Allow-Origin: *");

或使用.htaccess(http://enable-cors.org/server_apache.html):

Header set Access-Control-Allow-Origin "*"

更多信息以及如何:http://enable-cors.org/server.html

您也可以使用JSONP。 这里的示例(可能有帮助):JSONP web service with python

答案 1 :(得分:0)

由于源政策相同,您无法做到这一点。 由于端口号不同,因此页面 A 和页面 B 来自不同的域。

检查Jsonp:http://en.wikipedia.org/wiki/JSONP这可能是解决方案。