【发布时间】:2014-01-24 02:05:14
【问题描述】:
我在尝试使用 PhantomJS 登录时发现了一个有趣的问题。我不知道为什么它实际上会发生。
基本上你像这样启动一个远程调试器:
/usr/local/bin/phantomjs --web-security=no --remote-debugger-port=13379 --remote-debugger-autorun=yes /tmp/test.js
在远程调试器中:
> location.href = "https://www.mysite.com/login"
> $('input[name="username_or_email"]').val('blah@email.com')
> $('input[name="password"]').val('wrongpassword')
> $('button[type="submit"]').submit()
在 Chrome 中执行此操作会在 XHR 请求后给我正确的“密码错误”消息,而使用 phantomjs 会给我一个一般错误,因为没有使用 phantomjs 发送 cookie(我检查了标头)。
我很困惑为什么 phantomjs 不通过 POST 请求发送 cookie。有谁知道我们如何让 phantomjs 按应有的方式发送带有所有请求的 cookie?设置 cookie 文件也没有任何区别。
【问题讨论】:
-
Hey Geesu,您找到解决问题的方法了吗?我遇到了类似的问题。 stackoverflow.com/questions/23679287/…
-
不幸的是我从来没有这样做过。我刚刚放弃使用 phantomjs 并开始使用 Mechanize gem 来伪造请求(就像 Net::HTTP 一样)。
-
在上面添加了一个赏金 - 我发现许多线程解决了这个问题,但没有答案。哈!
标签: cookies xmlhttprequest phantomjs