不能在页面中设置cookie.评估PhantomJS
Can't set cookies in page.evaluate PhantomJS
我需要获取cookie并在PhantomJS中设置它们以请求第二个服务器site2.com
page.open("http://site1.com", function(){
page.evaluate(function(){
var d = document.createElement('script');
d.src = "http://site2.com/javascript_file.js"
document.appendChild(d);
});
});
_http://site1.com第一个服务器,在PhanotmJS中设置cookie (成功)
_http://site2.com第二个服务器,不能设置cookie在phantomjs (不成功)
问题在哪里?如何解决这个问题?
页面上的JavaScript只能为JavaScript运行的域设置cookie。如果你在page.evaluate()
中通过document.cookie
设置cookie而你现在在site1.com,那么你只能为site1.com设置cookie
通常情况下,您首先必须从您想要设置cookie的域打开一些页面,但您也可以利用phantom.addCookie(obj)
函数设置"。site2.com"的domain
属性。您需要在通过page.evaluate()
添加脚本标记之前这样做。请记住,phantom
在page.evaluate()
中不可用。
另外,在实际添加cookie之前可能需要一段时间,所以我添加了一个简短的setTimeout()
。
应该这样做:
page.open("http://site1.com", function(){
phantom.addCookie({
'name': 'Cookie-Name',
'value': 'Cookie-Value',
'domain': 'site2.com'
});
setTimeout(function(){
page.evaluate(function(){
var d = document.createElement('script');
d.src = "http://site2.com/javascript_file.js"
document.appendChild(d);
});
}, 200);
});
相关文章:
- 在jquery中为显示/隐藏设置cookie
- 按下按钮时保存cookie
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何在Analytics.js中始终了解最新的cookie过期时间
- php httponly cookie在浏览器关闭时被删除
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- CORS-服务器端cookie没有保存在chrome浏览器上
- 如何为后台更改程序代码设置cookie
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 如何从另一个域加载cookie
- 使用jquery cookie的第三方cookie
- 无法在基于Cordova的应用程序中读取Set Cookie标头
- 如何在Javascript中将单选按钮值保存到cookie中
- cookie加载事件页面重定向
- MVC C#从jQuery和JSON.stringify创建的cookie中读取值
- 为什么可以't我在谷歌浏览器中返回cookie
- 如何使用单选按钮设置cookie值
- 类型错误'未定义'不是对象(正在评估'navigator.connection.type'
- 不能在页面中设置cookie.评估PhantomJS
- 在php中回应一个变量会得到一个数字,将变量设置为cookie并评估cookie会得到另一个数字