使用PHP时,发布请求有效,但是当我将Axios与React一起使用时,发布请求失败,并显示500内部错误,该如何解决?

时间:2020-05-23 15:56:54

标签: reactjs axios

我在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内部错误,而不是此错误。

有任何解决方法?

1 个答案:

答案 0 :(得分:0)

我使用javascript中的fetch()解决了问题。

我使用post方法进行简单的获取对我有效,不知道它不适用于Axios。

我认为这是Axios的问题,我稍后将在其Github上发布一条消息。