काम नहीं कर रहा है मैं एंड्रॉइड के लिए एक फोनगैप ऐप बना रहा हूं। (रिमोट) सर्वर से डेटा प्राप्त करने के लिए मैं jQuery के $ .ajax() फ़ंक्शन का उपयोग करके एक आरईएसटी कॉल करता हूं। कुछ चीजें आपको पता होना चाहिए रहे हैं:फ़ोनगैप और jQuery का उपयोग कर क्रॉस-डोमेन अनुरोध
- कॉल का प्रकार पोस्ट होना चाहिए
- सर्वर उम्मीद JSON डेटा (कम से कम यूज़रनेम और पासवर्ड)
- सर्वर वापस भेजता है JSON डेटा
कोड:
function makeCall(){
var url = "http://remote/server/rest/call";
var jsonData ='{"username":"'+$('#username').val()+'","password":"'+$('#password').val()+'"}';
$.ajax({
headers: {"Content-Type":"application/json; charset=UTF-8"},
type: "POST",
url: url,
data: jsonData,
dataType: "json",
success: succesFunction,
error: errorFunction
});
}
लेकिन, यह काम नहीं करता। जब मैं सर्वर प्रतिक्रिया देखने के लिए फ़ायरबग का उपयोग करता हूं, तो कुछ भी नहीं है। टीसीपीटी्रेस के साथ मैं अनुरोध के शीर्षलेख देख सकता हूं। अपेक्षित पोस्ट विधि के बजाय, कुछ विकल्प हैं, कुछ अजीब हेडर जोड़े गए हैं।
OPTIONS /remote/server/rest/call HTTP/1.1
Host: localhost:8081
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: nl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Pragma: no-cache
Cache-Control: no-cache
मुझे पता है कि क्रॉस-डोमेन अनुरोध करने के साथ इसका कुछ संबंध है, लेकिन मुझे नहीं पता कि समस्या को कैसे हल किया जाए। मैं इसे ठीक करने के लिए कुछ चीजें करने की कोशिश की, लेकिन कोई परिणाम के साथ:
- 'json' की जगह में प्रयोग करें 'jsonp'
- कोशिश Cross-Origin Resource Sharing (CORS)
उपयोग करने के लिए समस्या भी कुछ करने के लिए है उसी मूल नीति के साथ, लेकिन यह फ़ाइल पर लागू नहीं होता है: // प्रोटोकॉल फोनगैप स्थानीय HTML फ़ाइल लोड करने के लिए उपयोग कर रहा है।
मेरी AndroidManifest.xml फ़ाइल में, विकल्प
<uses-permission android:name="android.permission.INTERNET" />
निर्धारित है।
मैं इसे 2 दिनों के लिए ठीक करने की कोशिश कर रहा हूं, लेकिन अब तक कोई परिणाम नहीं है। क्या यह करना भी संभव है? क्या आपके पास मेरे लिए कोई सुझाव है ताकि मैं आगे बढ़ सकूं?
अग्रिम धन्यवाद!
आपकी समस्या ठीक हो सकती है लेकिन यह उत्तर नहीं है जो क्रॉस-डोमेन-अनुरोध समस्या हल करता है – Asqan