के बजाय विकल्प भेज रहा है मैं PHP बैकएंड के माध्यम से एक MySQL डेटाबेस में डेटा को अद्यतन/सम्मिलित करने का प्रयास कर रहा हूं। मैं AngularJS के साथ फ्रंट एंड का निर्माण कर रहा हूं और REST API के साथ संचार करने के लिए $http
सेवा का उपयोग कर रहा हूं।
मेरे सेटअप इस तरह दिखता है:
मैं के माध्यम से शीर्ष लेख सेट कर रहा हूं $ httpProvider:
$httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.headers = {'Content-Type': 'application/json;charset=utf-8'};
और बाद कॉल इस तरह दिखता है:
return $http({
url: url,
method: "POST",
data: campaign
});
क्रोम में देव कंसोल मुझे यह दिखाता है:
जब मैं पद से बदल डालने के लिए, मैं एक विकल्प भेज रहा एक PUT बजाय कहते हैं। और सामग्री-प्रकार केवल content-type
पर स्विच करता है।
मेरा अनुरोध पेलोड एक वस्तु के रूप में भेज रहा है:
मैं अपने हैडर ठीक से सेट करते हैं?
संपादित करें:
$e->getResponse()
->getHeaders()
->addHeaderLine('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
$e->getResponse()
->getHeaders()
->addHeaderLine('Access-Control-Allow-Origin', '*');
वहाँ कुछ याद आ रही है:
पीएचपी बैकएंड कुछ हेडर सेट करता है?
एप्लिकेशन/जेसन एक डिफ़ॉल्ट सामग्री-प्रकार सेट है। यदि आप इसे टेक्स्ट/सादे – Chandermani
@Chandermani पर सेट कर रहे हैं तो आपको अपने कोड में खोजना होगा। मेरा कोड काफी छोटा है। मेरे पास एक api.js फ़ाइल है जहां मैं इसे करता हूं, और एक .config.js फ़ाइल जहां मैं वर्तमान में शीर्षलेख मैन्युअल रूप से सेट करता हूं। –
मैं सर्वसम्मति से सहमत हूं। आपके शीर्षकों की आवश्यकता नहीं होनी चाहिए। कुछ बहुत अजीब चल रहा है। मैं कोणीय में लिखे गए प्रत्येक 'http.post' को देखता हूं और वे सभी सरल थे। हेडर माना जाता था। –