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

标签 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();
});

我怎样才能完全满足这个请求? 编辑: 根据请求的一些 header 是:

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

如何设置这个参数?

最佳答案

服务可能会查找发出请求的客户端的合法性。要解决这个问题,请转储您获得的数据,而不对其中存在“,”进行任何假设,然后看看它说了什么。更好的是,使用 page.render() 渲染页面进行调试。

根据您所看到的内容,您可能需要更改 User-AgentX-Request-Withreferrer 等请求中的其他 header 字段。您可以通过在 Chrome 检查器的网络选项卡中查看它来将其与从浏览器发送的请求进行匹配。

关于javascript - 如何完整接收外部网页的XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23619554/

相关文章:

javascript - 使用 XMLHttpRequest 通过 Google 的 Shortener api 缩短 url

php - PDO数组插入值的顺序有限制吗?

javascript - 我可以在代码库的任何地方用 "GET"替换 "POST"方法吗?

javascript - 使用 Grunt-Babel 使 ES6 Internet Explorer 11 兼容

javascript - jQuery:通过 $(this) 使用 ".each"作为选择的选项

php - laravel 中的 "with"和 "load"有什么区别

php - 为什么 MySQL 语句被忽略?

javascript - JavaScript 中的 DOM 解析

javascript - `scroll` eventListener 给出 `window.scrollY` 之间的大间隔

javascript - 单击编辑 div 类名称