2014-04-08 129 views
1

我正在使用PhantomJS 1.9(Windows)。当我发送POST XMLHttpRequest来我的服务器PhantomJS这样POST数据未使用XMLHttpRequest发送

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "https://my_server_url", true); 
xhr.send("TEST"); 

请求本身在服务器正常到达,但POST数据(这里:“TEST”)是不存在的。

从浏览器控制台(即Chrome)执行完全相同的脚本可以正常工作!我究竟做错了什么?

+0

它看起来应该工作。当你发送实际数据时,它只是一个这样的字符串?或者它是json或什么?我更喜欢使用FormData()对象来发送POST请求。 –

+0

@OotheA:是的,它是跨域的! – heinob

+0

这里是我在另一个问题中发布的示例。这是一个GET请求,但应该让你开始[链接](http://stackoverflow.com/questions/22535058/including-cookies-on-a-ajax-request-for-cross-domain-request-using-pure -javascri/22816079#22816079)。有一些访问控制标题也必须在服务器端进行设置。 –

回答

0

对我来说,问题是PhantomJS异步POST请求是在Karma的Jasmine测试环境中进行的。我没有进行异步Jasmine测试(我没有使用回调函数done),因此测试在数据异步传输之前结束。要解决此问题,请在您的onreadystatechange处理程序中使用done回调来处理XHR请求。