0
嗨每一个, 我有具有邮件ID和密码,在提交应该调用哪个inturn生成的身份验证令牌的API一个登录表单。我已经使用POST方法在PHP卷曲,但得到以下错误。登录使用curl PHP(POST方法)
的Apache Tomcat/6.0.36 - 错误报告 ..一些HTML样式..因为请求实体是由所请求的资源请求方式不支持的格式 服务器拒绝这个请求
和这是我的Ajax调用..
function callapi()
{
data = new Object();
var email= document.getElementById("input01").value;
var pwd=document.getElementById("input02").value;
if(email != ""&& pwd != "")
{
data.Email = email;
data.Pwd = pwd;
}
jQuery.ajax({
url: "http://localhost/stackato/nlogin.php",
type: "POST",
dataType:"json",
data:data,
error: function (data) {
alert('error--'+data);
},
success: function (data) {
if(data=="invalid")
{
}
else
{
window.location.href="finalstackatolists1.html";
}
}
});
}
,这是我的卷曲PHP页面
<?php
header('Content-type: application/json');
$url = $_SERVER['REQUEST_URI'];
$scriptname = $_SERVER['SCRIPT_NAME'];
$queryString = $_SERVER['QUERY_STRING'];
$mail=$_POST["Email"];
$pwd=$_POST["Pwd"];
$action = $_POST["action"];
$nurl = str_replace($scriptname,"...the api...",$url);
//open connection
$ch = curl_init();
$data = array("username" => $mail, "password" => $pwd);
$req_data = json_encode($data);
curl_setopt($ch, CURLOPT_URL, $nurl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req_data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//execute post
if(! $result = curl_exec($ch)) {
die(curl_error($ch));
curl_close($ch);
}
if(curl_getinfo($ch, CURLINFO_HTTP_CODE) == '500')
{
header("Status: 500 Server Error");
}
curl_close($ch);
echo $result;
?>
(我试过它在REST客户端和令牌已生成)
请帮我解决这个..在此先感谢..
我怀疑'标题(“内容类型:应用程序/ JSON”);'应该是curl_close后'()' –
@ Dr.Dan:尝试,但仍然得到同样的错误。 – user1929687
在卷曲加上'curl_setopt($ CH,CURLOPT_HTTPHEADER,阵列( “内容类型:应用程序/ JSON”))'也参考[这里](http://stackoverflow.com/questions/4271621/php-curl-post -json) – mithunsatheesh