2016-07-06 32 views
5

इम कोणीय का उपयोग कर आयोनिक के साथ एक यूआरएल के लिए एक पोस्ट भेजने की कोशिश कर, लेकिन मैं प्रतिक्रिया:आयोनिक http पोस्ट

preflight अनुरोध के जवाब अभिगम नियंत्रण जाँच में सफल नहीं करता: नहीं 'पहुँच -कंट्रोल-अनुमति-उत्पत्ति 'हेडर अनुरोधित संसाधन पर मौजूद है। उत्पत्ति 'http://localhost:8100' इसलिए पहुंच की अनुमति नहीं है। प्रतिक्रिया HTTP स्थिति कोड 404.

था मुझे पता है कि बाह्य सेवा काम कर रहा है, क्योंकि मैं यह ajax द्वारा परीक्षण किया गया है और सब कुछ पूरी तरह से काम करता है ...

AngularJS (आयोनिक) में इस्तेमाल किया कोड के नीचे और अजाक्स:

आयोनिक:

var loginServiceUrl = 'http://url.com.br'; //It is not the real one 
var loginServiceData = { 
    email: [email protected] 
    senha: 1234 
}; 
$http.post(loginServiceUrl, loginServiceData). 
then(function (res){ 
    console.log(res); 
}); 

अजाक्स:

$.ajax({ 
    type: "POST", 
    url : 'http://url.com.br', //It is not the real one 
    data : {email: '[email protected]', senha: '1234'}, 
    success: function(result) { 
     $('html').text(JSON.stringify(result)); 
    } 
}); 

क्या किसी को पता है कि मुझे अपने लोकहोस्ट पर AJAX के माध्यम से पोस्ट क्यों मिलता है, न कि आयनिक, स्थानीयहोस्ट के साथ?

+0

आप इस सवाल का जवाब मिला? – ariestikto

+0

हाँ। क्रोम एक्सटेंशन: "अनुमति-नियंत्रण-अनुमति-उत्पत्ति: *", https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi – Beto

+0

कूल, बहुत बहुत धन्यवाद! – ariestikto

उत्तर

1

इसे देखें। यह अच्छी तरह से समझाया गया है कि आपके जैसे मुद्दों को कैसे संभालना है ->http://blog.ionic.io/handling-cors-issues-in-ionic/

+0

मैंने कोशिश की, लेकिन AngularJs के मेरे कम ज्ञान ने मुझे ऐसा करने के लिए नहीं किया जो मैं कारखाने का उपयोग करना चाहता था ... =/और केवल प्रॉक्सी int ionic.project dosent work – Beto

1

अपने POST अनुरोध में शीर्षलेख जोड़ने का प्रयास करें।

// DataToSend

var DataToSend = { 
        userID: deviceID, 
        coordLat : pos.coords.latitude, 
        coordLon: pos.coords.longitude 
    }; 

    $http({ 
      method: 'POST', 
      url: 'http://url.com.br', 
      headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}, 
      data: DataToSend 
     }) 
+0

का उपयोग कर उसी त्रुटि ... = टी – Beto

0

CORS अपने दृश्यपटल के साथ कोई संबंध नहीं है के उदाहरण।

POST अनुरोध भेजने से पहले, ब्राउज़र यह जांचने के लिए सर्वर से एक विकल्प अनुरोध भेजता है कि आपके डोमेन से कॉल की अनुमति है या नहीं।

के बाद से, आप स्थिति 404 हो रही है, इसका मतलब है कि अपने सर्वर से निपटने नहीं है विकल्प का अनुरोध

1. अब दूसरे भाग यानी के लिए आते हैं (एक ही पोस्ट के रूप में)

विकल्प अनुरोध की अनुमति दें " प्रीफलाइट अनुरोध का जवाब एक्सेस कंट्रोल चेक पास नहीं करता है: नहीं 'एक्सेस-कंट्रोल-ऑर्डर-ऑरिजन' '

विकल्प अनुरोधों को अनुमति देने के बाद, अब विकल्प अनुरोध के प्रतिक्रिया शीर्षलेख को सेट करें (ब्राउज़र विकल्प अनुरोध की प्रतिक्रिया जांचेंगे और उसके बाद केवल POST अनुरोध को संसाधित करें यदि मैं वहां हूं विकल्प प्रतिक्रिया में मौजूद 'एक्सेस-कंट्रोल-ऑब्जेक्ट-ऑरिजन'।

2. विकल्प सेट की प्रतिक्रिया हेडर का अनुरोध

response().setHeader("Access-Control-Allow-Origin", "*"); 
response().setHeader("Allow", "*"); 
response().setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS"); 
response().setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Referer, User-Agent"); 

उदाहरण .. (जावा में)

रूटर:

OPTIONS /*all       
controllers.Application.preflight(all) 

नियंत्रक फंक्शन:

public static Result preflight(String all) { 
     response().setHeader("Access-Control-Allow-Origin", "*"); 
     response().setHeader("Allow", "*"); 
     response().setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS"); 
     response().setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Referer, User-Agent, Auth-Token"); 
     return ok(); 
    } 

आशा इससे आपकी समस्या का समाधान होगा।

चीयर्स

संबंधित मुद्दे