当我用浏览器调用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
如何设置此参数?
答案 0 :(得分:1)
可能是服务寻找发出请求的客户端的合法性。要解决这个问题,请转储您正在获取的数据,而不要考虑其中的“,”,并查看它的内容。更好的是,使用page.render()
呈现页面进行调试。
根据您看到的内容,您可能希望更改请求中的User-Agent
,X-Request-With
,referrer
和其他一些标题字段。您可以将其与浏览器发送的请求进行匹配,方法是在Chrome检查器的网络标签中查看。