WebWorks AJAX跨域请求

时间:2012-06-16 12:15:12

标签: ajax blackberry xmlhttprequest blackberry-playbook blackberry-webworks

我正在使用webworks sdk开发一个playbook应用程序。 我正在尝试通过发送和接收数据来发出http请求(方法:发布)。 我可以从服务器获得响应,但服务器无法获取$ POST数据,当我尝试显示$ _POST ['apiKey']时,没有任何内容,我检查了我的代码100次,检查了我的config.xml for uri ,找不到错误。

TL; DR:无法发送但可以接收数据。

我的PHP服务器代码:     

echo "passed key is: ".$_POST["apiKey"]; // Nothing apears
echo "<br>";

if(md5($_SESSION['private_key'])===$_POST["apiKey"]){

}

else{
    echo "Invalid API Key"; // Always getting this response on client app
    exit();
}
?>

我的JS客户端代码:

function httpRequest(){
    var key="a984a4474cff54d8468a296edf3af65b";
document.getElementById("status").innerHTML="Reaching server...";
//////////////////////////////////////
var xdr = getXDomainRequest();
xdr.onload = function() {
    document.getElementById("status").innerHTML=xdr.responseText;
}

xdr.open("POST", "http://mydomain/index.php");
xdr.send("apiKey="+key);

}


解决: 使用POST方法时,您应该定义请求标头:

xdr.open("POST", "http://mydomain.com/index.php");
xdr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // with this line
xdr.send("apiKey="+key);

1 个答案:

答案 0 :(得分:1)

解决:使用POST方法时,您应该定义请求标头:

xdr.open("POST", "http://mydomain.com/index.php");
xdr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // with this line
xdr.send("apiKey="+key);