Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未使用XMLHttpRequest发送POST数据_Javascript_Xmlhttprequest_Phantomjs - Fatal编程技术网

Javascript 未使用XMLHttpRequest发送POST数据

Javascript 未使用XMLHttpRequest发送POST数据,javascript,xmlhttprequest,phantomjs,Javascript,Xmlhttprequest,Phantomjs,我使用的是PhantomJS 1.9 Windows。当我用PhantomJ向我的服务器发送一个POST XMLHttpRequest时 var xhr = new XMLHttpRequest(); xhr.open("POST", "https://my_server_url", true); xhr.send("TEST"); 请求本身正确地到达了服务器,但是这里的POST数据:TEST不在那里 从浏览器控制台(即Chrome)执行完全相同的脚本工作正常!我做错了什么?我的问题是,Pha

我使用的是PhantomJS 1.9 Windows。当我用PhantomJ向我的服务器发送一个POST XMLHttpRequest时

var xhr = new XMLHttpRequest();
xhr.open("POST", "https://my_server_url", true);
xhr.send("TEST");
请求本身正确地到达了服务器,但是这里的POST数据:TEST不在那里


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

我的问题是,PhantomJS异步POST请求是在Karma中的Jasmine测试上下文中发出的。我没有使Jasmine测试异步,也没有使用done回调,因此测试在异步传输数据之前结束。要解决此问题,请在XHR请求的onreadystatechange处理程序中使用done回调。

它看起来应该可以工作。当您发送实际数据时,它只是一个这样的字符串吗?还是json之类的?我更喜欢使用FormData对象发送POST请求。@Ottothea:是的,它是跨域的!下面是我在另一个问题中发布的一个示例。这是一个GET请求,但应该让您开始。您必须在服务器端也设置了一些访问控制头。@OtotheA:是的,它是一个字符串。@OtotheA:我不认为CORS是这里的问题,因为这个问题是通过从服务器发送访问控制允许源代码来解决的。尽管如此,应发送所有初始请求数据,尽管存在CORS。正如我所说:它在浏览器中工作。