我在PHP中创建以下代码:
$url = $API_URL.'/api/v1/courses/'.$COURSE_ID.'/quizzes/'.$QUIZ_ID.'/reports?quiz_report[report_type]=student_analysis&quiz_report[includes_all_versions]=1';
$crl = curl_init();
$headr = array();
$headr[] = 'Content-length: 0';
$headr[] = 'Content-type: application/json';
$headr[] = 'Authorization: Bearer '.$API_KEY;
curl_setopt($crl, CURLOPT_URL, $url );
curl_setopt($crl, CURLOPT_HTTPHEADER,$headr);
curl_setopt($crl, CURLOPT_POST,true);
$rest = curl_exec($crl);
curl_close($crl);
此代码运行完美。我注意到的重要一点是,如果删除部分“ $ headr [] ='Content-length:0';”,请求将失败,并显示400 Bad Request错误。
现在我需要在React上执行此操作,我使用Axios,这是我使用的代码:
var config2 = {
headers: {
'Access-Control-Allow-Origin': '*',
'Authorization': "Bearer 11748~BTNBIfTKrIORcK7SVw09Gryq5bc1MipitSFA4K4Lwh1inbv0jfj5z7mL9U6p1GV3",
'Accept' : 'application/json',
'Content-Length' : '0',
'Content-type' : 'application/json'
}
};
let course_id = '8717'
let quiz_id = '58320'
try {
let url2 = Constantes.URL_PREFIX+'/courses/'+course_id+'/quizzes/'+quiz_id+'/reports?quiz_report[report_type]=student_analysis&quiz_report[includes_all_versions]=1'
const response = await axios.post( url2, config2 )
console.log("xxx - response.data")
console.log(response.data)
} catch(err) {
console.log("ERRO - xxx: "+err)
}
运行代码后,出现500内部错误。 如果我在下面更改以下代码 const response =等待axios.post(url2,config2) 至 const response =等待axios.get(url2,config2) 该代码可以工作,但是我需要使用axios.post来运行此代码,就像处理PHP代码一样。
react应用程序使用CORS PROXY处理所有请求,我也遇到了一个错误 'Content-Length':'0', 当我使用axios.get时,我得到的错误是 拒绝设置不安全的标题“ Content-Length”
当我使用axios.post时,不会出现此错误,而是出现500内部错误,而不是此错误。
有任何解决方法?
答案 0 :(得分:0)
我使用javascript中的fetch()解决了问题。
我使用post方法进行简单的获取对我有效,不知道它不适用于Axios。
我认为这是Axios的问题,我稍后将在其Github上发布一条消息。