如何从外部网页接收完整的XMLHttpRequest

时间:2014-05-12 21:54:59

标签: javascript php xmlhttprequest phantomjs

当我用浏览器调用XMLHttpRequest时,它显示的结果每次都不同,并且似乎没有完全接收数据。为此,我使用Phantomjs来调用此请求,但我无法获得响应请求,因为我使用下面的代码,但它不起作用,如果请求它每次都有不同的结果,就像浏览器调用一样。

var page = require('webpage').create();
page.settings.resourceTimeout = 5000;

page.open("http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=9536587154100457&c=57+", function() {
    var ans=page.content;
    ans=ans.split(",");
    allnemads.push(ans);
    page.close();
});

我怎么能完全理解这个要求? 编辑: 根据要求提供的一些标题是:

Accept:text/plain, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,fa;q=0.6
Connection:keep-alive
Cookie:__qca=P0-1512129452-1383575171205; ASP.NET_SessionId=0bzykf45ydyr2ovzfou0pd55
If-Modified-Since:Wed, 14 May 2014 07:11:02 GMT
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36
X-Requested-With:XMLHttpRequest

如何设置此参数?

1 个答案:

答案 0 :(得分:1)

可能是服务寻找发出请求的客户端的合法性。要解决这个问题,请转储您正在获取的数据,而不要考虑其中的“,”,并查看它的内容。更好的是,使用page.render()呈现页面进行调试。

根据您看到的内容,您可能希望更改请求中的User-AgentX-Request-Withreferrer和其他一些标题字段。您可以将其与浏览器发送的请求进行匹配,方法是在Chrome检查器的网络标签中查看。