我有一个访问Asana API的PHP应用程序。我能够在Asana中创建一个项目。但是,对API类的ajax调用正在返回一个readystate = 0。Asana项目已创建,但ajax readystate 0
虽然在萤火虫故障排除我也注意到,网络控制台有一个302,400(??)和200状态代码。我认为400状态代码与无效请求或格式不正确的网址有关,但是无论如何都会创建该项目。
有什么想法?
更新:更多信息。
我有一个Ajax调用一个PHP文件,实习生在调用API服务之前调用Asana API来获取验证码和令牌。 我相信我得到了CORS警告,因此readystate = 0和400错误。然而,因为我的脚本的其余部分继续使用该令牌,它无论如何都会插入记录。但是,在令牌过期后(3600秒),现在我无法插入记录。我知道如果我直接调用php文件,它可以在没有CORS错误的情况下运行。
$.ajax({
type: 'POST',
url: "oa/asana.php",
data: {apiprovider:"asana",type:"addnewproject",notes:"notes",name:"name",id:"id",resource:"projects"},
//dataType:"json",
//contentType: "application/json",
success: function(data) {
console.log(data);
},
error: function(error)
{
console.log("asana api error");
console.log(JSON.stringify(error)) ;
},
async:true
});
我的php代码看起来像这样。
...$asana = new AsanaAuth(API_KEY,API_SECRET,callbackUrl);
if (!isset($_GET['code'])) {
$url = $asana->getAuthorizeUrl();
header('Location:' . $url);
} else {
$asana->getAccessToken($_GET['code']);
if ($asana->hasError()) {
echo 'Error response code: ' . $asana->responseCode;
}
else {
echo $asana->response;
}
}
在Ajax调用之外有更好的方法吗?