أقوم بإرسال طلب نشر من بلدي المحلي إلى مجال آخر. (أنا أستخدم Chrome في وضع dev لتجاوز مشكلة Cors)
هذا هو الكود الخاص بي:
axios('https://..../signup', {
method: 'POST',
data: {
email: '[email protected]',
password: 'fdsfds',
confirmPassword: 'fdsfds'
}
}).then(function(response) {
console.log('response::', response.data);
})
.catch(function(error) {
console.log('ERROR::', error.data);
});
تكمن المشكلة في أنني أحصل على الحالة 400 (Bad Request)
فقط كاستجابة ، بينما إذا كنت سأرسل نفس الطلب عبر curl cli / postman ، فسأحصل على الحالة بالإضافة إلى هيئة مثل:
[
{
"param": "email",
"msg": "Email is not valid"
},
{
"param": "password",
"msg": "Password must be at least 4 characters long"
},
{
"param": "confirmPassword",
"msg": "Passwords do not match"
}
]
ولكن ليس مع أكسيوس. لا يمكن أن تكون هذه مشكلة في Cors ، لأنني أستطيع أن أجعل استفسارات الحصول / نشر بشكل جيد ، ولا يبدو أنني أحصل على الجسد الذي يتم إرجاعه بالحالة.
بغض النظر عن قيام console.log('ERROR::', error.response.data);
بالمهمة ، آمل أن يتم توثيق ذلك بوضوح.
samayo شكرا لك على الرد على هذا. لقد كان يقودني إلى الجنون ، باستخدام طلب XHR البسيط نجح في استعادة ردود الخطأ ، ولكن عند استخدام أكسيوس كنت أتساءل لماذا لم أتمكن من استعادة الردود على الخطأ ، والتي أجبت عليها بشكل مثالي. متفق عليه أنه من الأسهل العثور عليه في الوثائق.
عندما أرسل طلب نشر باستخدام غير متزامن ، في انتظار بناء الجملة إذا كانت حالة res 200 ، فإنه يرسل نص استجابة مرة أخرى ولكن عندما تكون حالة الاستجابة 400 ، فإنه لا يرسل نص استجابة. كيفية الحصول على خطأ باستخدام غير متزامن في انتظار بناء الجملة؟
التعليق الأكثر فائدة
بغض النظر عن قيام
console.log('ERROR::', error.response.data);
بالمهمة ، آمل أن يتم توثيق ذلك بوضوح.