2013-10-15 44 views
0

我不是很熟悉,一般的API,但不要让这阻止您回答这个问题;)POST的XMLHTTPRequest在Javascript

我想拉使用XMLHttpRequest对象数据。我原本打算使用WSDL文件,但我使用的API没有。出于某种原因,当我尝试获取HTML文件中显示的响应时,什么也没有发生,甚至没有发现它没有连接的错误。 api还需要使用POST。

这里的JavaScript:

window.onload = function startCall() { 
    var http = new XMLHttpRequest(); 

    var url = "https://api.domain.com"; 
    var params = "Version=2.00&ApiKey=111111111111111111&CallID=001"; 
    http.open("POST", url, true); 

    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http.setRequestHeader("Content-length", "226"); 
    http.setRequestHeader("Host", "api.domain.com"); 

    http.onreadystatechange = function() { 
     if(http.readyState == 4 && http.status == 200) { 
      alert(http.responseText); 
     } 
    } 
    http.send(params); 

    function sendToHtml(url, 'target') { 
    if (req.readyState == 4) { 
     if (req.status == 200) { 
     document.getElementById('target').innerHTML = req.responseText; 
     } 
    } 
    else { 
    document.getElementById('target').innerHTML=" Error:\n"+ req.status + "\n" +req.statusText; 
    } 
    } 
} 

而这里的HTML

<html> 
<head> 
<script type="text/javascript" src="call.js"></script> 
</head> 
<body> 
<span onload="startCall" id="target"> 
</span> 
</body> 
</html> 

三江源任何帮助

+0

您是否通过了相同的产地来源政策? –

回答

0

POST域之间的请求限制,浏览器不会允许它。

可以通过发送正确的Access-Control-Allow-Origin来启用它(CORS),但它必须在API服务器上完成。