অক্ষরের সাথে শিরোনামগুলি পোষ্ট অনুরোধ


134

এনপিএম প্যাকেজ ডকুমেন্টেশন থেকে যেমন সুপারিশ করা হয়েছে আমি একটি অক্ষরেখার পোষ্ট অনুরোধ লিখেছি:

var data = {
    'key1': 'val1',
    'key2': 'val2'
}
axios.post(Helper.getUserAPI(), data)       
.then((response) => {
    dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
    dispatch({type: ERROR_FINDING_USER})
})

এবং এটি কাজ করে, তবে এখন শিরোনামগুলি গ্রহণ করতে আমি আমার ব্যাকএন্ড এপিআই পরিবর্তন করেছি।

বিষয়বস্তুর ধরণ: 'অ্যাপ্লিকেশন / জেসন'

অনুমোদন: 'জেডাব্লুটি টি ফেজে ...'

এখন, এই অনুরোধটি পোস্টম্যানের জন্য দুর্দান্ত কাজ করে তবে একটি অক্সিজো কল লেখার সময় আমি এই লিঙ্কটি অনুসরণ করি এবং এটি কার্যকরভাবে পেতে পারি না।

আমি ক্রমাগত 400 BAD Requestত্রুটি হয়ে যাচ্ছি ।

আমার পরিবর্তিত অনুরোধটি এখানে:

axios.post(Helper.getUserAPI(), {
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'JWT fefege...'
    },
    data
})      
.then((response) => {
    dispatch({type: FOUND_USER, data: response.data[0]})
})
.catch((error) => {
    dispatch({type: ERROR_FINDING_USER})
})

কোন সাহায্য ব্যাপকভাবে প্রশংসা করা হয়।

উত্তর:


241

অক্ষরেখার ব্যবহার করার সময়, কাস্টম শিরোলেখগুলি পাস করার জন্য, শিরোনামটিকে অন্তর্ভুক্তিকে শেষ যুক্তি হিসাবে সরবরাহ করুন

আপনার অক্ষের অনুরোধটি সংশোধন করুন:

const headers = {
  'Content-Type': 'application/json',
  'Authorization': 'JWT fefege...'
}

axios.post(Helper.getUserAPI(), data, {
    headers: headers
  })
  .then((response) => {
    dispatch({
      type: FOUND_USER,
      data: response.data[0]
    })
  })
  .catch((error) => {
    dispatch({
      type: ERROR_FINDING_USER
    })
  })

কিশোর জেঠভা, ৫০০ আভ্যন্তরীণ সার্ভার ত্রুটি, আপনি শিরোনাম আসতে পারছেন কিনা বা অন্য কোনও বাগ আছে কিনা তা আপনি সার্ভারের দিক থেকে পরীক্ষা করতে পারেন
শুভম খাত্রি

কিশোর জেঠভা, আপনি কি কেবলমাত্র আপনার সার্ভারে শিরোনামগুলি লগ করতে পারেন এবং দেখতে পাচ্ছেন যে আপনি সঠিক মানগুলি পেয়ে যাচ্ছেন
শুভম খত্রি

আপনার কোনও ডেটা পোস্ট করার দরকার নেই? এছাড়াও নিশ্চিত করুন যে এটি.স্টেট.টোকনে একটি মান রয়েছে
শুভম


@ShubhamKhatri, আমি একটি কটাক্ষপাত আছে করতে বলতে পারি axios: সংশ্লিষ্ট প্রশ্ন এখানে stackoverflow.com/questions/59470085/... ?
ইসতিয়াক আহমেদ

37

এখানে কাস্টম শিরোনামগুলির সাথে অক্ষরগুলির একটি পোষ্ট অনুরোধের সম্পূর্ণ উদাহরণ রয়েছে

var postData = {
  email: "test@test.com",
  password: "password"
};

let axiosConfig = {
  headers: {
      'Content-Type': 'application/json;charset=UTF-8',
      "Access-Control-Allow-Origin": "*",
  }
};

axios.post('http://<host>:<port>/<path>', postData, axiosConfig)
.then((res) => {
  console.log("RESPONSE RECEIVED: ", res);
})
.catch((err) => {
  console.log("AXIOS ERROR: ", err);
})


অনুরোধ পাওয়ার জন্য এই সমস্যার মুখোমুখি। প্রতিক্রিয়াটি এক্সএমএল ফর্ম্যাটে আসছে। এটি সমস্যার সমাধান করে না।
warশ্বর

3

এটি সহায়ক হতে পারে,

const data = {
  email: "me@me.com",
  username: "me"
};

const options = {
  headers: {
      'Content-Type': 'application/json',
  }
};

axios.post('http://path', data, options)
 .then((res) => {
   console.log("RESPONSE ==== : ", res);
 })
 .catch((err) => {
   console.log("ERROR: ====", err);
 })
দ্রষ্টব্য: 400 এর উপরে থাকা সমস্ত স্থিতি কোডগুলি অক্ষের ক্যাচ ব্লকে ধরা পড়বে। এছাড়াও, শিরোনাম অক্ষগুলি পোস্ট পদ্ধতিতে forচ্ছিক

ব্লককোট

ব্লককোট


2

শুভম উত্তর আমার কাজে আসেনি।

আপনি যখন অডিওস লাইব্রেরি ব্যবহার করছেন এবং কাস্টম শিরোনামগুলি পাস করার জন্য, আপনাকে কী শিরোনাম "শিরোলেখ" দিয়ে একটি অবজেক্ট হিসাবে শিরোনাম তৈরি করতে হবে। শিরোনাম কীটিতে একটি অবজেক্ট থাকা উচিত, এটি এটি সামগ্রী-প্রকার এবং অনুমোদন।

নীচে উদাহরণস্বরূপ কাজ করছে।

    var headers = {
        'Content-Type': 'application/json',
        'Authorization': 'JWT fefege...' 
    }
    axios.post(Helper.getUserAPI(), data, {"headers" : headers})

        .then((response) => {
            dispatch({type: FOUND_USER, data: response.data[0]})
        })
        .catch((error) => {
            dispatch({type: ERROR_FINDING_USER})
        })

1

আপনি শিরোনামগুলি পাস করার জন্য ইন্টারসেপ্টরগুলিও ব্যবহার করতে পারেন

এটি আপনাকে প্রচুর কোড বাঁচাতে পারে

axios.interceptors.request.use(config => {
  if (config.method === 'POST' || config.method === 'PATCH' || config.method === 'PUT')
    config.headers['Content-Type'] = 'application/json;charset=utf-8';

  const accessToken = AuthService.getAccessToken();
  if (accessToken) config.headers.Authorization = 'Bearer ' + accessToken;

  return config;
});

আমি ব্যবহার করার পরামর্শ দেবconfig.method.toUpperCase()
কনস্টান্টাইন


দুর্ভাগ্যক্রমে, আমার কম ছিল
কনস্টান্টাইন

0

অথবা, আপনি যদি ভয়েজ প্রোটোটাইপ থেকে এমন কিছু সম্পত্তি ব্যবহার করছেন যা তৈরিতে পড়া যায় না তবে আপনি শিরোনাম সংজ্ঞায়িত করতে এবং লিখতেও পারেন

storePropertyMaxSpeed(){
                axios.post('api/property', {
                    "property_name" : 'max_speed',
                    "property_amount" : this.newPropertyMaxSpeed
                    },
                    {headers :  {'Content-Type': 'application/json',
                                'Authorization': 'Bearer ' + this.$gate.token()}})
                  .then(() => { //this below peace of code isn't important 
                    Event.$emit('dbPropertyChanged');

                    $('#addPropertyMaxSpeedModal').modal('hide');

                    Swal.fire({
                        position: 'center',
                        type: 'success',
                        title: 'Nova brzina unešena u bazu',
                        showConfirmButton: false,
                        timer: 1500
                        })
                })
                .catch(() => {
                     Swal.fire("Neuspješno!", "Nešto je pošlo do đavola", "warning");
                })
            }
        },

-4

জসনকে ডাবল উদ্ধৃতি দিয়ে ফর্ম্যাট করতে হবে

ভালো লেগেছে:

headers: {
                "Content-Type": "application/Jason",
                "Authorization": "JWT fefege..."
            }

শুধুই না:

headers: {
                'Content-Type': 'application/json',
                'Authorization': 'JWT fefege...'
         }

এটি JSON ফর্ম্যাটের জন্য সত্য তবে জাভাস্ক্রিপ্ট ব্যবহার করার সময় আপনি জাভাস্ক্রিপ্টের স্ট্রিং লিখতে পারেন তবে আপনি চান এবং এটি এখনও কাজ করবে - কারণ অক্ষরেখায় JSON সিরিয়ালাইজ পার্থক্যটি জানেন না! :-)
জোনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.