javascript无法正确发送post请求

javascript无法正确发送post请求,javascript,Javascript,我正试图将一些数据发布到某个站点,以便发布到g,但javascript似乎不太喜欢我:(。 要执行请求,我执行以下操作: var xmlhttp; if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("POST","http://(removed)/forums

我正试图将一些数据发布到某个站点,以便发布到g,但javascript似乎不太喜欢我:(。 要执行请求,我执行以下操作:

  var xmlhttp;
    if (window.XMLHttpRequest)
    xmlhttp=new XMLHttpRequest();
    else
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.open("POST","http://(removed)/forums/en/shoutbox_comet.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=utf-8");
    xmlhttp.setRequestHeader("X-Request","JSON");
    xmlhttp.setRequestHeader("Cookie",document.cookie); 
    xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4)
    alert(xmlhttp.responseText);
    }
    var channels = ['english_486', 'english_0', 'english_459','english_293','english_1310','english_292','english_459','english_293','english_970'];
    var channel = channels[Math.floor(Math.random() * channels.length)];
    var data = "channel="+channel+"&action=publish&type=message&data=HelloWorld";
    xmlhttp.send(data);
哪个发送了这个:

OPTIONS http://(removed)/forums/en/shoutbox_comet.php HTTP/1.1
Host: (removed)
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Origin: http://(removed)
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-request
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
我怎样才能解决这个问题? 我希望它发送:

POST http://(removed)/forums/en/shoutbox_comet.php HTTP/1.1
Host: (removed)
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
X-Request: JSON
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Referer: http://(removed)/forums/en/shoutbox_comet_standalone.php?f=293&style=popout
Content-Length: 55
Cookie: (removed)
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

channel=english_293&action=publish&type=message&data=HelloWorld

您正在向其他域发出请求。这是浏览器的安全问题。请输入。浏览器会在发布前发送一个选项请求(有时称为“飞行前”请求),以确定服务器是否可以响应该请求


您必须确保您的服务器正确响应这些请求。

您的JS是否与
http://(已删除)/forums/en/shoutbox_comet.php运行在同一个域上?如果它位于不同的域上,那么浏览器将在您实际发布之前发送CORS飞行前选项请求。“我如何解决此问题?”确切的问题是什么?它是通过一个外部脚本@SergiuParaschiv完成的。请求将向何处发送?AJAX调用取决于。这意味着您不能从siteA向siteB发出AJAX请求。@j08691我希望它发送带有数据的请求并接收正确的响应……根据目标服务器的响应,请求将ay或可能不允许继续。但是,如果我删除以下[xmlhttp.setRequestHeader(“X-Request”,“JSON”);],它将以POST的形式发送请求(没有我需要使用的两个必需的头)编辑:我没有访问服务器代码的权限,因此无法编辑它。是的,这是迫使浏览器“忘记”它正在处理跨域请求这一事实的一种方法,尽管服务器(取决于实现)可能不喜欢这样做。