首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Curl Php登录(POST方法)

使用Curl Php登录(POST方法)
EN

Stack Overflow用户
提问于 2012-12-26 19:18:16
回答 1查看 3K关注 0票数 0

在每个人,我有一个登录表单,其中有邮件id和密码,在提交时,它应该调用一个api,它反过来生成一个身份验证令牌。我在Php curl中使用了POST方法,但得到了以下错误。

Apache Tomcat/6.0.36 -错误报告..一些html样式..服务器拒绝了此请求,因为所请求的方法所请求的资源不支持请求实体的格式

这是我的ajax调用。

代码语言:javascript
复制
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";
}



}
});

}

这是我的curl php页面

代码语言:javascript
复制
<?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-Client中尝试过,并且已经生成了令牌)

请帮我解决这个问题..提前谢谢..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-26 19:45:09

您必须指定已提交数据的类型为JSON

将这一行添加到curl代码中

代码语言:javascript
复制
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/json"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14039851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档